diff --git a/dap-sdk/core/src/dap_config.c b/dap-sdk/core/src/dap_config.c
index d7b3a316d87cbf15a0a48411836f8e90d1ba8442..ad2a99111fde1798f32434416480a9b71c739d6a 100755
--- a/dap-sdk/core/src/dap_config.c
+++ b/dap-sdk/core/src/dap_config.c
@@ -222,6 +222,7 @@ dap_config_t * dap_config_open(const char * a_name)
                                             if (l_param_value[0] == '[') {
                                                 if(l_param_value[1] == ']') {
                                                     //log_it(L_WARNING, "Empty array!");
+                                                    DAP_DELETE(l_line);
                                                     continue;
                                                 }
 
diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index 7e4aef83679c88cfda76d749f31e2ed23b989013..6333fbdf7134d822d72409756796c3420c374752 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -500,23 +500,32 @@ int dap_chain_ledger_token_add(dap_ledger_t *a_ledger, dap_chain_datum_token_t *
     switch(a_token->type) {
     case DAP_CHAIN_DATUM_TOKEN_TYPE_OLD_SIMPLE:
     case DAP_CHAIN_DATUM_TOKEN_TYPE_SIMPLE:
-        if(s_debug_more)
+        if(s_debug_more) {
+            char *l_balance = dap_chain_balance_to_coins(l_token->total_supply);
             log_it(L_NOTICE, "Simple token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu type=DAP_CHAIN_DATUM_TOKEN_TYPE_SIMPLE )",
-        l_token->ticker, dap_chain_balance_to_coins(l_token->total_supply),
-        l_token->signs_valid, l_token->signs_total);
+                    l_token->ticker, l_balance,
+                    l_token->signs_valid, l_token->signs_total);
+            DAP_DELETE(l_balance);
+        }
         break;
     case DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_DECL: // 256
-        if(s_debug_more)
+        if(s_debug_more) {
+            char *l_balance = dap_chain_balance_to_coins(a_token->total_supply);
             log_it(L_NOTICE, "Private token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu type=DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_DECL)",
-        a_token->ticker, dap_chain_balance_to_coins(a_token->total_supply),
-        a_token->signs_valid, a_token->signs_total);
+                    a_token->ticker, l_balance,
+                    a_token->signs_valid, a_token->signs_total);
+            DAP_DELETE(l_balance);
+        }
         s_token_tsd_parse(a_ledger,l_token_item, a_token, a_token_size);
         break;
    case DAP_CHAIN_DATUM_TOKEN_TYPE_NATIVE_DECL: // 256
-        if(s_debug_more)
+        if(s_debug_more) {
+            char *l_balance = dap_chain_balance_to_coins(a_token->total_supply);
             log_it(L_NOTICE, "CF20 token %s added (total_supply = %s total_signs_valid=%hu signs_total=%hu)",
-        a_token->ticker, dap_chain_balance_to_coins(a_token->total_supply),
-        a_token->signs_valid, a_token->signs_total);
+                    a_token->ticker, l_balance,
+                    a_token->signs_valid, a_token->signs_total);
+            DAP_DELETE(l_balance);
+        }
         s_token_tsd_parse(a_ledger,l_token_item, a_token, a_token_size);
         break;
     case DAP_CHAIN_DATUM_TOKEN_TYPE_PRIVATE_UPDATE: // 256
@@ -1112,7 +1121,9 @@ dap_string_t *dap_chain_ledger_balance_info(dap_ledger_t *a_ledger)
         dap_string_append(l_str_ret, ", token_ticker:");
         dap_string_append(l_str_ret, l_balance_item->token_ticker);
         dap_string_append(l_str_ret, ", balance:");
-        dap_string_append(l_str_ret, dap_chain_balance_print(l_balance_item->balance));
+        char *l_balance = dap_chain_balance_print(l_balance_item->balance);
+        dap_string_append(l_str_ret, l_balance);
+        DAP_DELETE(l_balance);
         dap_string_append(l_str_ret, "\n");
         l_counter +=1;
     }
@@ -1164,14 +1175,18 @@ dap_list_t *dap_chain_ledger_token_info(dap_ledger_t *a_ledger)
                                                 l_token_item->auth_signs_valid, l_token_item->auth_signs_total,
                                                 HASH_COUNT(l_token_item->token_emissions));
         } else {
+                char *l_balance_cur = dap_chain_balance_print(l_token_item->current_supply);
+                char *l_balance_total = dap_chain_balance_print(l_token_item->total_supply);
                 l_item_str = dap_strdup_printf("Token name '%s', type %s, flags: %s\n"
                                                 "\tSupply (current/total) %s/%s\n"
                                                 "\tAuth signs (valid/total) %zu/%zu\n"
                                                 "\tTotal emissions %u\n",
                                                 &l_token_item->ticker, l_type_str, s_flag_str_from_code(l_token_item->datum_token->header_private_decl.flags),
-                                                dap_chain_balance_print(l_token_item->current_supply), dap_chain_balance_print(l_token_item->total_supply),
+                                                l_balance_cur, l_balance_total,
                                                 l_token_item->auth_signs_valid, l_token_item->auth_signs_total,
                                                 HASH_COUNT(l_token_item->token_emissions));
+                DAP_DELETE(l_balance_cur);
+                DAP_DELETE(l_balance_total);
         }
 
         l_ret_list = dap_list_append(l_ret_list, l_item_str);
@@ -1534,9 +1549,12 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_
                                        : &l_ledger_priv->threshold_emissions_rwlock);
     if(l_token_emission_item ) {
         if(s_debug_more) {
-            if ( l_token_emission_item->datum_token_emission->hdr.version == 2 )
+            if ( l_token_emission_item->datum_token_emission->hdr.version == 2 ) {
+                char *l_balance = dap_chain_balance_print(l_token_emission_item->datum_token_emission->hdr.value_256);
                 log_it(L_ERROR, "Can't add token emission datum of %s %s ( %s ): already present in cache",
-                    dap_chain_balance_print(l_token_emission_item->datum_token_emission->hdr.value_256), c_token_ticker, l_hash_str);
+                        l_balance, c_token_ticker, l_hash_str);
+                DAP_DELETE(l_balance);
+            }
             else
                 log_it(L_ERROR, "Can't add token emission datum of %"DAP_UINT64_FORMAT_U" %s ( %s ): already present in cache",
                     l_token_emission_item->datum_token_emission->hdr.value, c_token_ticker, l_hash_str);
@@ -1562,11 +1580,14 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_
 
     // if total_supply > 0 we can check current_supply
     if (!IS_ZERO_256(l_token_item->total_supply)){
-        if (compare256(l_token_item->current_supply, l_emission->hdr.value_256) < 0){
-        log_it(L_WARNING,"Ledger_token_emission_add_check. current_supply %s is lower, then l_emission->hdr.value_256: %s",
-                        dap_chain_balance_print(l_token_item->current_supply),
-                        dap_chain_balance_print(l_emission->hdr.value_256));
-        return -4;
+        if(compare256(l_token_item->current_supply, l_emission->hdr.value_256) < 0) {
+            char *l_balance_cur = dap_chain_balance_print(l_token_item->current_supply);
+            char *l_balance_em = dap_chain_balance_print(l_emission->hdr.value_256);
+            log_it(L_WARNING, "Ledger_token_emission_add_check. current_supply %s is lower, then l_emission->hdr.value_256: %s",
+                    l_balance_cur, l_balance_em);
+            DAP_DELETE(l_balance_cur);
+            DAP_DELETE(l_balance_em);
+            return -4;
         }
     }
 
@@ -1612,8 +1633,10 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_
                 }
                 if (l_aproves < l_aproves_valid ){
                     if(s_debug_more) {
-                       log_it(L_WARNING, "Emission of %s datoshi of %s:%s is wrong: only %u valid aproves when %u need",
-                           dap_chain_balance_print(l_emission->hdr.value_256), a_ledger->net_name, l_emission->hdr.ticker, l_aproves, l_aproves_valid );
+                        char *l_balance = dap_chain_balance_print(l_emission->hdr.value_256);
+                        log_it(L_WARNING, "Emission of %s datoshi of %s:%s is wrong: only %u valid aproves when %u need",
+                                l_balance, a_ledger->net_name, l_emission->hdr.ticker, l_aproves, l_aproves_valid);
+                        DAP_DELETE(l_balance);
                     }
                     l_ret = -3;
                 }
@@ -1794,11 +1817,12 @@ static inline int s_token_emission_add(dap_ledger_t *a_ledger, byte_t *a_token_e
             DAP_DELETE(l_gdb_group);
             if(s_debug_more) {
                 char * l_token_emission_address_str = dap_chain_addr_to_str(&(l_token_emission_item->datum_token_emission->hdr.address));
+                char *l_balance = dap_chain_balance_to_coins(l_token_emission_item->datum_token_emission->hdr.value_256);
                 log_it(L_NOTICE, "Added token emission datum to emissions cache: type=%s value=%s token=%s to_addr=%s ",
                                c_dap_chain_datum_token_emission_type_str[l_token_emission_item->datum_token_emission->hdr.type],
-                               dap_chain_balance_to_coins(l_token_emission_item->datum_token_emission->hdr.value_256),
-                               c_token_ticker, l_token_emission_address_str);
+                               l_balance, c_token_ticker, l_token_emission_address_str);
                 DAP_DELETE(l_token_emission_address_str);
+                DAP_DELETE(l_balance);
             }
             s_threshold_txs_proc(a_ledger);
         } else if (HASH_COUNT(l_ledger_priv->threshold_emissions) < s_threshold_emissions_max) {
@@ -1826,9 +1850,11 @@ static inline int s_token_emission_add(dap_ledger_t *a_ledger, byte_t *a_token_e
     } else {
         if (l_token_item) {
             if(s_debug_more) {
-                if ( ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.version == 1 ) // && ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.type_256 ) // 256
-                    log_it(L_ERROR, "Duplicate token emission datum of %s %s ( %s )",
-                            dap_chain_balance_print(((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value_256), c_token_ticker, l_hash_str);
+                if ( ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.version == 1 ) { // && ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.type_256 ) // 256
+                    char *l_balance = dap_chain_balance_print(((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value_256);
+                    log_it(L_ERROR, "Duplicate token emission datum of %s %s ( %s )", l_balance, c_token_ticker, l_hash_str);
+                    DAP_DELETE(l_balance);
+                }
                 else
                     log_it(L_ERROR, "Duplicate token emission datum of %"DAP_UINT64_FORMAT_U" %s ( %s )",
                             ((dap_chain_datum_token_emission_t *)a_token_emission)->hdr.value, c_token_ticker, l_hash_str);
@@ -2718,9 +2744,14 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
         HASH_ITER(hh, l_values_from_prev_tx, l_value_cur, l_tmp) {
             HASH_FIND_STR(l_values_from_cur_tx, l_value_cur->token_ticker, l_res);
             if (!l_res || !EQUAL_256(l_res->sum, l_value_cur->sum) ) {
-                if(s_debug_more)
+                if(s_debug_more) {
+                    char *l_balance = dap_chain_balance_print(l_res ? l_res->sum : uint256_0);
+                    char *l_balance_cur = dap_chain_balance_print(l_value_cur->sum);
                     log_it(L_ERROR, "Sum of values of out items from current tx 256 (%s) is not equal outs from previous tx (%s) for token %s",
-                       dap_chain_balance_print(l_res ? l_res->sum : uint256_0), dap_chain_balance_print(l_value_cur->sum), l_value_cur->token_ticker);
+                            l_balance, l_balance_cur, l_value_cur->token_ticker);
+                    DAP_DELETE(l_balance);
+                    DAP_DELETE(l_balance_cur);
+                }
                 l_err_num = -12;
                 break;
             }
@@ -3003,8 +3034,11 @@ static inline int s_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, d
                     break;
                 }
 
-                if(s_debug_more)
-                    log_it(L_DEBUG,"SPEND %s from addr: %s", dap_chain_balance_print(l_value), l_wallet_balance_key);
+                if(s_debug_more) {
+                    char *l_balance = dap_chain_balance_print(l_value);
+                    log_it(L_DEBUG,"SPEND %s from addr: %s", l_balance, l_wallet_balance_key);
+                    DAP_DELETE(l_balance);
+                }
 
                 SUBTRACT_256_256(wallet_balance->balance, l_value, &wallet_balance->balance);
 
@@ -3151,8 +3185,11 @@ static inline int s_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx, d
                     break;
             }
 
-            if(s_debug_more)
-                log_it (L_DEBUG,"GOT %s to addr: %s", dap_chain_balance_print(l_value_256), l_wallet_balance_key);
+            if(s_debug_more) {
+                char *l_balance = dap_chain_balance_print(l_value_256);
+                log_it(L_DEBUG, "GOT %s to addr: %s", l_balance, l_wallet_balance_key);
+                DAP_DELETE(l_balance);
+            }
             pthread_rwlock_rdlock(&l_ledger_priv->balance_accounts_rwlock);
             HASH_FIND_STR(PVT(a_ledger)->balance_accounts, l_wallet_balance_key, wallet_balance);
             pthread_rwlock_unlock(&l_ledger_priv->balance_accounts_rwlock);
@@ -3562,9 +3599,11 @@ uint256_t dap_chain_ledger_calc_balance(dap_ledger_t *a_ledger, const dap_chain_
     HASH_FIND_STR(PVT(a_ledger)->balance_accounts, l_wallet_balance_key, l_balance_item);
     pthread_rwlock_unlock(&PVT(a_ledger)->balance_accounts_rwlock);
     if (l_balance_item) {
-        if(s_debug_more)
-            log_it (L_INFO,"Found address in cache with balance %s",
-                            dap_chain_balance_print(l_balance_item->balance));
+        if(s_debug_more) {
+            char *l_balance = dap_chain_balance_print(l_balance_item->balance);
+            log_it(L_INFO, "Found address in cache with balance %s", l_balance);
+            DAP_DELETE(l_balance);
+        }
         l_ret = l_balance_item->balance;
     } else {
         if (s_debug_more)
diff --git a/modules/common/dap_chain_datum.c b/modules/common/dap_chain_datum.c
index 0584789487100c41c97871a4ceb6521fa8ee4bfb..0520fa36d63aa5436825791be732cf474ac58529 100644
--- a/modules/common/dap_chain_datum.c
+++ b/modules/common/dap_chain_datum.c
@@ -89,15 +89,17 @@ void s_datum_token_dump_tsd(dap_string_t *a_str_out, dap_chain_datum_token_t *a_
                 dap_chain_datum_token_flags_dump(a_str_out,
                                                  dap_tsd_get_scalar(l_tsd, uint16_t));
             break;
-            case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY: // 256
-                dap_string_append_printf(a_str_out,"total_supply: %s\n",
-                                    dap_chain_balance_print(
-                                            dap_tsd_get_scalar(l_tsd, uint256_t)));
+            case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY: { // 256
+                char *l_balance = dap_chain_balance_print(dap_tsd_get_scalar(l_tsd, uint256_t));
+                dap_string_append_printf(a_str_out, "total_supply: %s\n", l_balance);
+                DAP_DELETE(l_balance);
+            }
             break;
-            case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY_OLD: // 128
-                dap_string_append_printf(a_str_out,"total_supply: %s\n",
-                                    dap_chain_balance_print(GET_256_FROM_128(
-                                        dap_tsd_get_scalar(l_tsd, uint128_t))));
+            case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SUPPLY_OLD: {// 128
+                char *l_balance = dap_chain_balance_print(GET_256_FROM_128(dap_tsd_get_scalar(l_tsd, uint128_t)));
+                dap_string_append_printf(a_str_out, "total_supply: %s\n", l_balance);
+                DAP_DELETE(l_balance);
+            }
             break;
             case DAP_CHAIN_DATUM_TOKEN_TSD_TYPE_TOTAL_SIGNS_VALID :
                 dap_string_append_printf(a_str_out,"total_signs_valid: %u\n",
diff --git a/modules/global-db/dap_chain_global_db_driver_cdb.c b/modules/global-db/dap_chain_global_db_driver_cdb.c
index c3c16badbc50440aea456f5b845711ffcfae61d6..7a1a55dfae7a49f15b7695c76913a7dba612b34b 100644
--- a/modules/global-db/dap_chain_global_db_driver_cdb.c
+++ b/modules/global-db/dap_chain_global_db_driver_cdb.c
@@ -221,7 +221,7 @@ pcdb_instance dap_cdb_init_group(const char *a_group, int a_flags) {
             //log_it(L_INFO, "Average read latency: %-24u"    , l_cdb_stat.rlatcy);
             //log_it(L_INFO, "Average write latency: %-24u"   , l_cdb_stat.wlatcy);
             //log_it(L_INFO, "Last id: %-24u"                 , l_cdb_i->id);
-            DAP_DELETE(l_arg.o);
+            dap_store_obj_free_one(l_arg.o);
         } else {
             log_it(L_INFO, "Group \"%s\" created", l_cdb_i->local_group);
             l_cdb_i->id = 0;
diff --git a/modules/global-db/dap_chain_global_db_remote.c b/modules/global-db/dap_chain_global_db_remote.c
index 2fbd5f92aa12e54d8faa20d3d335ca4e75855c47..ea6ea6a36043b3d4015930eced0c749de4ab05a9 100644
--- a/modules/global-db/dap_chain_global_db_remote.c
+++ b/modules/global-db/dap_chain_global_db_remote.c
@@ -790,7 +790,7 @@ dap_store_obj_t *l_store_obj_arr, *l_obj;
     // Return the number of completely filled dap_store_obj_t structures
     // because l_cur_count may be less than l_count due to too little memory
     if (a_store_obj_count)
-        *a_store_obj_count = l_cur_count;
+        *a_store_obj_count = l_count;
 
     return l_store_obj_arr;
 }
diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c
index 4c469ca2fd16dabc69edb91405af182a5bf56aeb..3510f89fb91e37d25c21537f17049cc66956da20 100644
--- a/modules/mempool/dap_chain_mempool.c
+++ b/modules/mempool/dap_chain_mempool.c
@@ -224,7 +224,9 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
     uint256_t l_value_need = {};
     MULT_256_256(dap_chain_uint256_from(a_tx_num), l_single_val, &l_value_need);
     uint256_t l_value_transfer = {}; // how many coins to transfer
-    log_it(L_DEBUG,"Create %"DAP_UINT64_FORMAT_U" transactions, summary %s", a_tx_num, dap_chain_balance_to_coins(l_value_need)) ;
+    char *l_balance = dap_chain_balance_to_coins(l_value_need);
+    log_it(L_DEBUG, "Create %"DAP_UINT64_FORMAT_U" transactions, summary %s", a_tx_num, l_balance);
+    DAP_DELETE(l_balance);
     dap_list_t *l_list_used_out = dap_chain_ledger_get_list_tx_outs_with_val(a_chain->ledger, a_token_ticker,
                                                                              a_addr_from, l_value_need, &l_value_transfer);
     if (!l_list_used_out) {
@@ -251,12 +253,14 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
 
             dap_chain_hash_fast_to_str(&l_item->tx_hash_fast,l_in_hash_str,sizeof (l_in_hash_str) );
 
+            char *l_balance = dap_chain_balance_print(l_item->value);
             if(dap_chain_datum_tx_add_in_item(&l_tx_new, &l_item->tx_hash_fast, (uint32_t)l_item->num_idx_out) == 1) {
                 SUM_256_256(l_value_to_items, l_item->value, &l_value_to_items);
-                log_it(L_DEBUG, "Added input %s with %s datoshi", l_in_hash_str, dap_chain_balance_print(l_item->value));
+                log_it(L_DEBUG, "Added input %s with %s datoshi", l_in_hash_str, l_balance);
             }else{
-                log_it(L_WARNING, "Can't add input from %s with %s datoshi", l_in_hash_str, dap_chain_balance_print(l_item->value));
+                log_it(L_WARNING, "Can't add input from %s with %s datoshi", l_in_hash_str, l_balance);
             }
+            DAP_DELETE(l_balance);
             l_list_used_out = l_list_tmp->next;
             DAP_DELETE(l_list_tmp->data);
             dap_list_free1(l_list_tmp);
@@ -265,8 +269,11 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
                 break;
         }
         if (compare256(l_value_to_items, l_single_val) == -1) {
-            log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s",
-                   dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_single_val));
+            char *l_balance = dap_chain_balance_print(l_value_to_items);
+            char *l_balance_need = dap_chain_balance_print(l_single_val);
+            log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s", l_balance, l_balance_need);
+            DAP_DELETE(l_balance);
+            DAP_DELETE(l_balance_need);
             DAP_DELETE(l_objs);
             return -5;
         }
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index cba03ca2ee8f4a53c3cb860e26680d38d4240c4b..6f5203e1e3392db2a4b7609c022b3e0e36af9a86 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -2719,6 +2719,7 @@ int s_net_load(const char * a_net_name, uint16_t a_acl_idx)
                             l_chain_prior->chains_path = l_chains_path;
                             // add chain to load list;
                             l_prior_list = dap_list_append(l_prior_list, l_chain_prior);
+                            dap_config_close(l_cfg);
                         }
                     }
                 }
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index 7cd28e4a271210c26a41405639a3a2bd868c5cf6..13b2a891739a2eeafdebfbe58e488098958e911a 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -267,12 +267,15 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
                                                 (l_tx_out_256) ? dap_chain_addr_to_str(&l_tx_out_256->addr) : NULL;
 
                 if(l_tx_out || l_tx_out_256) {
-                    if ( l_type_256 ) // 256
+                    if(l_type_256) { // 256
+                        char *l_balance = dap_chain_balance_print(l_tx_out_256->header.value);
                         dap_string_append_printf(l_str_out, " OUT 256bit item %s %s to %s\n",
-                            dap_chain_balance_print(l_tx_out_256->header.value),
-                            dap_strlen(l_token_str) > 0 ? l_token_str : "?",
-                            l_dst_to_str ? l_dst_to_str : "?"
-                        );
+                                l_balance,
+                                dap_strlen(l_token_str) > 0 ? l_token_str : "?",
+                                l_dst_to_str ? l_dst_to_str : "?"
+                                               );
+                        DAP_DELETE(l_balance);
+                    }
                     else
                         dap_string_append_printf(l_str_out, " OUT item %"DAP_UINT64_FORMAT_U" %s to %s\n",
                             l_tx_out->header.value,
@@ -328,8 +331,10 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
                         dap_chain_tx_out_t *l_tx_prev_out =
                                 l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL;
                         // print value from prev out item
-                        dap_string_append_printf(l_str_out, "  prev OUT 256bitt item value=%s",
-                                l_tx_prev_out ? dap_chain_balance_print(l_tx_prev_out->header.value) : "0");
+                        char *l_balance = dap_chain_balance_print(l_tx_prev_out->header.value);
+                        dap_string_append_printf(l_str_out, "  prev OUT 256bit item value=%s",
+                                l_tx_prev_out ? l_balance : "0");
+                        DAP_DELETE(l_balance);
                     } else {
                         dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev,
                                 TX_ITEM_TYPE_OUT_OLD, NULL);
diff --git a/modules/net/srv/dap_chain_net_srv_order.c b/modules/net/srv/dap_chain_net_srv_order.c
index c4ef7312273c7f92e5eeac332f5ac9f26f67de6b..83932b09ddda7c77b2a212326ed9c14258b0aa72 100644
--- a/modules/net/srv/dap_chain_net_srv_order.c
+++ b/modules/net/srv/dap_chain_net_srv_order.c
@@ -537,7 +537,11 @@ void dap_chain_net_srv_order_dump_to_string(dap_chain_net_srv_order_t *a_order,d
         }
 
         dap_string_append_printf(a_str_out, "  srv_uid:          0x%016"DAP_UINT64_FORMAT_X"\n", a_order->srv_uid.uint64 );
-        dap_string_append_printf(a_str_out, "  price:            %s (%s)\n", dap_chain_balance_to_coins(a_order->price), dap_chain_balance_print(a_order->price));
+        char *l_balance_coins = dap_chain_balance_to_coins(a_order->price);
+        char *l_balance = dap_chain_balance_print(a_order->price);
+        dap_string_append_printf(a_str_out, "  price:            %s (%s)\n", l_balance_coins, l_balance);
+        DAP_DELETE(l_balance_coins);
+        DAP_DELETE(l_balance);
         if( a_order->price_unit.uint32 )
             dap_string_append_printf(a_str_out, "  price_unit:       %s\n", dap_chain_net_srv_price_unit_uid_to_str(a_order->price_unit) );
         if ( a_order->node_addr.uint64)
diff --git a/modules/service/datum/dap_chain_net_srv_datum.c b/modules/service/datum/dap_chain_net_srv_datum.c
index 9177b3706dfaa774b5d78f0be9dda0f9b573f653..48c20c2828de4a015e14ca4507f1c46c703ef958 100644
--- a/modules/service/datum/dap_chain_net_srv_datum.c
+++ b/modules/service/datum/dap_chain_net_srv_datum.c
@@ -223,8 +223,11 @@ void s_order_notficator(void *a_arg, const char a_op_code, const char *a_group,
     if ((l_order->price_unit.uint32 != SERV_UNIT_PCS) || (l_order->direction != SERV_DIR_BUY) ||
             (strncmp(l_order->price_ticker, l_price->token, DAP_CHAIN_TICKER_SIZE_MAX)) ||
             (!compare256(l_order->price, l_price->value_datoshi))) {
-        log_it(L_DEBUG, "Price from order (%s) is not equal to price from service pricelist (%s)",
-               dap_chain_balance_to_coins(l_order->price), dap_chain_balance_to_coins(l_price->value_datoshi));
+        char *l_balance_order = dap_chain_balance_to_coins(l_order->price);
+        char *l_balance_service = dap_chain_balance_to_coins(l_price->value_datoshi);
+        log_it(L_DEBUG, "Price from order (%s) is not equal to price from service pricelist (%s)", l_balance_order, l_balance_service);
+        DAP_DELETE(l_balance_order);
+        DAP_DELETE(l_balance_service);
         return; // price from order is not equal with service price
     }
     char l_tx_cond_hash_str[DAP_CHAIN_HASH_FAST_STR_SIZE];
diff --git a/modules/service/stake/dap_chain_net_srv_stake.c b/modules/service/stake/dap_chain_net_srv_stake.c
index c9f516b1f16c7a0f83f9ce3972fa152f91068383..410aab17600135d7dd8a9ef486b5b1dc78d7bd3e 100644
--- a/modules/service/stake/dap_chain_net_srv_stake.c
+++ b/modules/service/stake/dap_chain_net_srv_stake.c
@@ -1159,8 +1159,11 @@ static int s_cli_srv_stake_order(int a_argc, char **a_argv, int a_arg_index, cha
                 // TODO add filters to list (token, address, etc.)
                 l_stake = s_stake_item_from_order(l_net, l_order);
                 char *l_addr = dap_chain_addr_to_str(&l_stake->signing_addr);
-                dap_string_append_printf(l_reply_str, "%s %s %s %s %s\n", l_orders[i].key, dap_chain_balance_print(l_stake->value),
-                                                                           l_stake->token, l_addr, dap_chain_balance_to_coins(l_stake->fee_value));
+                char *l_balance = dap_chain_balance_print(l_stake->value);
+                char *l_fee = dap_chain_balance_to_coins(l_stake->fee_value);
+                dap_string_append_printf(l_reply_str, "%s %s %s %s %s\n", l_orders[i].key, l_balance, l_stake->token, l_addr, l_fee);
+                DAP_DELETE(l_balance);
+                DAP_DELETE(l_fee);
                 DAP_DELETE(l_addr);
                 DAP_DELETE(l_stake);
             }
@@ -1370,10 +1373,14 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply)
                 char *l_addr_hldr_str = dap_chain_addr_to_str(&l_stake->addr_hldr);
                 char *l_signing_addr_str = dap_chain_addr_to_str(&l_stake->signing_addr);
                 char *l_addr_fee_str = dap_chain_addr_to_str(&l_stake->addr_fee);
+                char *l_balance = dap_chain_balance_print(l_stake->value);
+                char *l_fee = dap_chain_balance_to_coins(l_stake->fee_value);
                 dap_string_append_printf(l_reply_str, "%s %s %s %s %s %s %s\n", l_tx_hash_str, l_stake->token,
-                                                                                 dap_chain_balance_print(l_stake->value), l_addr_hldr_str,
-                                                                                 l_signing_addr_str, l_addr_fee_str,
-                                                                                 dap_chain_balance_to_coins(l_stake->fee_value));
+                                                                                l_balance, l_addr_hldr_str,
+                                                                                l_signing_addr_str, l_addr_fee_str,
+                                                                                l_fee);
+                DAP_DELETE(l_balance);
+                DAP_DELETE(l_fee);
                 DAP_DELETE(l_tx_hash_str);
                 DAP_DELETE(l_addr_hldr_str);
                 DAP_DELETE(l_signing_addr_str);
diff --git a/modules/service/xchange/dap_chain_net_srv_xchange.c b/modules/service/xchange/dap_chain_net_srv_xchange.c
index 34ecaf3fb966bade878cb4cd73d694508c4becf4..b8200405c8cefaa1f09f5e4aa5abc443ae0252d9 100644
--- a/modules/service/xchange/dap_chain_net_srv_xchange.c
+++ b/modules/service/xchange/dap_chain_net_srv_xchange.c
@@ -821,9 +821,13 @@ static int s_cli_srv_xchange_price(int a_argc, char **a_argv, int a_arg_index, c
             dap_string_t *l_reply_str = dap_string_new("");
             HASH_ITER(hh, s_srv_xchange->pricelist, l_price, l_tmp) {
                 char *l_order_hash_str = dap_chain_hash_fast_to_str_new(&l_price->order_hash);
+                char *l_balance = dap_chain_balance_print(l_price->datoshi_sell);
+                char *l_balance_rate = dap_chain_balance_print(l_price->rate);
                 dap_string_append_printf(l_reply_str, "%s %s %s %s %s %s %s %s\n", l_order_hash_str, l_price->token_sell,
                                          l_price->net_sell->pub.name, l_price->token_buy, l_price->net_buy->pub.name,
-                                         dap_chain_balance_print(l_price->datoshi_sell), dap_chain_balance_print(l_price->rate), l_price->wallet_str);
+                                         l_balance, l_balance_rate, l_price->wallet_str);
+                DAP_DELETE(l_balance);
+                DAP_DELETE(l_balance_rate);
                 DAP_DELETE(l_order_hash_str);
             }
             if (!l_reply_str->len) {