diff --git a/CMakeLists.txt b/CMakeLists.txt
index c45ab919d9b99920ddb3caa803ef1feb34a38bff..548290aa73b871cd58d60fb70f7ada700b95852d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,7 +2,7 @@ project(cellframe-sdk C)
 cmake_minimum_required(VERSION 3.10)
 
 set(CMAKE_C_STANDARD 11)
-set(CELLFRAME_SDK_NATIVE_VERSION "3.0-13")
+set(CELLFRAME_SDK_NATIVE_VERSION "3.0-14")
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
 set(BUILD_CRYPTO_TESTS ON)
diff --git a/dap-sdk/crypto/include/dap_sign.h b/dap-sdk/crypto/include/dap_sign.h
index 23d13c366641c28d3f6f0bae351bdc3f2c1a92b2..1fcbefa3d755c320c593654e3da1511e14977181 100755
--- a/dap-sdk/crypto/include/dap_sign.h
+++ b/dap-sdk/crypto/include/dap_sign.h
@@ -141,7 +141,7 @@ dap_multi_sign_t *dap_multi_sign_create(dap_multi_sign_params_t *a_params, const
 int dap_multi_sign_verify(dap_multi_sign_t *a_sign, const void *a_data, const size_t a_data_size);
 void dap_multi_sign_delete(dap_multi_sign_t *a_sign);
 
-void dap_sign_get_information(dap_sign_t* a_sign, dap_string_t *a_str_out);
+void dap_sign_get_information(dap_sign_t* a_sign, dap_string_t *a_str_out, const char *a_hash_out_type);
 
 #ifdef __cplusplus
 }
diff --git a/dap-sdk/crypto/src/dap_sign.c b/dap-sdk/crypto/src/dap_sign.c
index 7c64420b0b4202cb9cbf8d8a7a5a3e0332b0667b..d3de0d4a9dd5cdced24c9190ea51fe072a1a3471 100755
--- a/dap-sdk/crypto/src/dap_sign.c
+++ b/dap-sdk/crypto/src/dap_sign.c
@@ -28,6 +28,7 @@
 #include "dap_strfuncs.h"
 #include "dap_hash.h"
 #include "dap_sign.h"
+#include "dap_enc_base58.h"
 #include "dap_enc_bliss.h"
 #include "dap_enc_tesla.h"
 #include "dap_enc_picnic.h"
@@ -861,14 +862,21 @@ void dap_multi_sign_delete(dap_multi_sign_t *a_sign)
  * @param a_sign Signature can be NULL
  * @param a_str_out The output string pointer
  */
-void dap_sign_get_information(dap_sign_t* a_sign, dap_string_t *a_str_out){
+void dap_sign_get_information(dap_sign_t* a_sign, dap_string_t *a_str_out, const char *a_hash_out_type)
+{
     dap_string_append_printf(a_str_out, "Signature: \n");
     if (a_sign != NULL){
         dap_chain_hash_fast_t l_hash_pkey;
         dap_string_append_printf(a_str_out, "\tType: %s\n",
                                  dap_sign_type_to_str(a_sign->header.type));
         if(dap_sign_get_pkey_hash(a_sign, &l_hash_pkey)){
-            dap_string_append_printf(a_str_out, "\tPublic key hash: %s\n", dap_chain_hash_fast_to_str_new(&l_hash_pkey));
+            char *l_hash_str = NULL;
+            if (!dap_strcmp(a_hash_out_type, "hex"))
+                l_hash_str = dap_chain_hash_fast_to_str_new(&l_hash_pkey);
+            else
+                l_hash_str = dap_enc_base58_encode_hash_to_str(&l_hash_pkey);
+            dap_string_append_printf(a_str_out, "\tPublic key hash: %s\n", l_hash_str);
+            DAP_DELETE(l_hash_str);
         }
         dap_string_append_printf(a_str_out, "\tPublic key size: %u\n"
                                             "\tSignature size: %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 f4e006fcd2292c535b959dd0ae08e665687666af..9ad9af43ca97ada907fb4294fa6df99840d2c8f6 100644
--- a/modules/global-db/dap_chain_global_db_driver_cdb.c
+++ b/modules/global-db/dap_chain_global_db_driver_cdb.c
@@ -585,13 +585,6 @@ int dap_db_driver_cdb_apply_store_obj(pdap_store_obj_t a_store_obj) {
         if(!a_store_obj->key) {
             return -2;
         }
-        /*if (dap_fnmatch("*.del", a_store_obj->group, 0)) {
-            char *l_del_group = dap_strdup_printf("%s.del", a_store_obj->group);
-            pcdb_instance l_cdb_d = dap_cdb_get_db_by_group(l_del_group);
-            if (l_cdb_d) {
-                l_cdb_i->id = max(l_cdb_d->id, l_cdb_i->id);
-            }
-        }*/
         cdb_record l_rec;
         l_rec.key = a_store_obj->key; //dap_strdup(a_store_obj->key);
         int offset = 0;
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index c8bae49ea6eaedd966a7fd5a18b2c87c2573602a..3d092719310f7567c03f5ba33e174556bb251fb5 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -836,9 +836,10 @@ static bool s_net_states_proc(dap_proc_thread_t *a_thread, void *a_arg)
         // State OFFLINE where we don't do anything
         case NET_STATE_OFFLINE: {
             // delete all links
+            l_net_pvt->links_connected_count = 0;
             dap_list_t *l_tmp = l_net_pvt->links;
             while (l_tmp) {
-                dap_list_t *l_next =l_tmp->next;
+                dap_list_t *l_next = l_tmp->next;
                 ((dap_chain_node_client_t *)l_tmp->data)->keep_connection = false;
                 dap_chain_node_client_close(l_tmp->data);
                 DAP_DELETE(l_tmp);
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index de5e8eea74501bd8db3a4ceb50f832696f75030f..d2810653a9b10cd519004dce83f6cc68d49e4b42 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -106,43 +106,54 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
         HASH_ADD(hh, *a_tx_hash_processed, hash, sizeof(dap_chain_hash_fast_t), l_sht);
         (*l_tx_num)++;
     }
-    char *l_tx_hash_user_str;
-    char l_tx_hash_str[70];
-    dap_chain_hash_fast_to_str(&l_tx_hash, l_tx_hash_str, 70);
     time_t l_ts_create = (time_t)a_datum->header.ts_created;
-    if(!dap_strcmp(a_hash_out_type, "hex"))
-        l_tx_hash_user_str = dap_strdup(l_tx_hash_str);
+    char *l_hash_str = NULL;
+    if (!dap_strcmp(a_hash_out_type, "hex"))
+        l_hash_str = dap_chain_hash_fast_to_str_new(&l_tx_hash);
     else
-        l_tx_hash_user_str = dap_enc_base58_from_hex_str_to_str(l_tx_hash_str);
+        l_hash_str = dap_enc_base58_encode_hash_to_str(&l_tx_hash);
     dap_list_t *l_list_tx_any = dap_chain_datum_tx_items_get(a_datum, TX_ITEM_TYPE_TOKEN, NULL);
     if(a_ledger == NULL){
-        dap_string_append_printf(a_str_out, "transaction: %s hash: %s\n Items:\n", l_list_tx_any ? "(emit)" : "", l_tx_hash_user_str);
+        dap_string_append_printf(a_str_out, "transaction: %s hash: %s\n Items:\n", l_list_tx_any ? "(emit)" : "", l_hash_str);
     } else {
         char buf[50];
+        const char *l_ticker;
+        if (l_list_tx_any) {
+            l_ticker = ((dap_chain_tx_token_t*)l_list_tx_any->data)->header.ticker;
+        } else {
+            l_ticker = dap_chain_ledger_tx_get_token_ticker_by_hash(a_ledger, &l_tx_hash);
+        }
         dap_string_append_printf(a_str_out, "transaction:%s hash: %s\n TS Created: %s Token ticker: %s\n Items:\n",
-                                 l_list_tx_any ? " (emit)" : "", l_tx_hash_user_str, dap_ctime_r(&l_ts_create, buf),
-                                 dap_chain_ledger_tx_get_token_ticker_by_hash(a_ledger, &l_tx_hash));
+                                 l_list_tx_any ? " (emit)" : "", l_hash_str, dap_ctime_r(&l_ts_create, buf), l_ticker);
     }
-    DAP_DELETE(l_tx_hash_user_str);
+    DAP_DELETE(l_hash_str);
     dap_list_free(l_list_tx_any);
     uint32_t l_tx_items_count = 0;
     uint32_t l_tx_items_size =a_datum->header.tx_items_size;
-    char *l_hash_str_tmp = NULL;
     char l_tmp_buf[70];
     dap_sign_t *l_sign_tmp;
     dap_chain_hash_fast_t l_pkey_hash_tmp;
+    dap_hash_fast_t *l_hash_tmp = NULL;
     dap_pkey_t *l_pkey_tmp;
     while(l_tx_items_count < l_tx_items_size){
         uint8_t *item = a_datum->tx_items + l_tx_items_count;
         size_t l_item_tx_size = dap_chain_datum_item_tx_get_size(item);
         switch(dap_chain_datum_tx_item_get_type(item)){
         case TX_ITEM_TYPE_IN:
-            l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&((dap_chain_tx_in_t*)item)->header.tx_prev_hash);
+            l_hash_tmp = &((dap_chain_tx_in_t*)item)->header.tx_prev_hash;
+            if (dap_hash_fast_is_blank(l_hash_tmp)) {
+                l_hash_str = dap_strdup("BLANK");
+            } else {
+                if (!dap_strcmp(a_hash_out_type, "hex"))
+                    l_hash_str = dap_chain_hash_fast_to_str_new(l_hash_tmp);
+                else
+                    l_hash_str = dap_enc_base58_encode_hash_to_str(l_hash_tmp);
+            }
             dap_string_append_printf(a_str_out, "\t IN:\nTx_prev_hash: %s\n"
                                                 "\t\t Tx_out_prev_idx: %u\n",
-                                        l_tx_hash_str,
+                                        l_hash_str,
                                         ((dap_chain_tx_in_t*)item)->header.tx_out_prev_idx);
-            DAP_DELETE(l_hash_str_tmp);
+            DAP_DELETE(l_hash_str);
             break;
         case TX_ITEM_TYPE_OUT:
             dap_string_append_printf(a_str_out, "\t OUT:\n"
@@ -155,16 +166,26 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                         dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr));
             break;
         case TX_ITEM_TYPE_TOKEN:
-            l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&((dap_chain_tx_token_t*)item)->header.token_emission_hash);
+            l_hash_tmp = &((dap_chain_tx_token_t*)item)->header.token_emission_hash;
+            if (!dap_strcmp(a_hash_out_type, "hex"))
+                l_hash_str = dap_chain_hash_fast_to_str_new(l_hash_tmp);
+            else
+                l_hash_str = dap_enc_base58_encode_hash_to_str(l_hash_tmp);
             dap_string_append_printf(a_str_out, "\t TOKEN:\n"
                                                 "\t\t ticker: %s \n"
                                                 "\t\t token_emission_hash: %s\n"
-                                                "\t\t token_emission_chain_id: 0x%016"DAP_UINT64_FORMAT_x"\n", ((dap_chain_tx_token_t*)item)->header.ticker, l_hash_str_tmp,
-                                        ((dap_chain_tx_token_t*)item)->header.token_emission_chain_id.uint64);
-            DAP_DELETE(l_hash_str_tmp);
+                                                "\t\t token_emission_chain_id: 0x%016"DAP_UINT64_FORMAT_x"\n",
+                                                ((dap_chain_tx_token_t*)item)->header.ticker,
+                                                l_hash_str,
+                                                ((dap_chain_tx_token_t*)item)->header.token_emission_chain_id.uint64);
+            DAP_DELETE(l_hash_str);
             break;
         case TX_ITEM_TYPE_TOKEN_EXT:
-            l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&((dap_chain_tx_token_ext_t*)item)->header.ext_tx_hash);
+            l_hash_tmp = &((dap_chain_tx_token_ext_t*)item)->header.ext_tx_hash;
+            if (!dap_strcmp(a_hash_out_type, "hex"))
+                l_hash_str = dap_chain_hash_fast_to_str_new(l_hash_tmp);
+            else
+                l_hash_str = dap_enc_base58_encode_hash_to_str(l_hash_tmp);
             dap_string_append_printf(a_str_out, "\t TOKEN EXT:\n"
                                          "\t\t Version: %u\n"
                                          "\t\t Ticker: %s\n"
@@ -176,15 +197,15 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                      ((dap_chain_tx_token_ext_t*)item)->header.ticker,
                                      ((dap_chain_tx_token_ext_t*)item)->header.ext_chain_id.uint64,
                                      ((dap_chain_tx_token_ext_t*)item)->header.ext_net_id.uint64,
-                                     l_hash_str_tmp,
+                                     l_hash_str,
                                      ((dap_chain_tx_token_ext_t*)item)->header.ext_tx_out_idx);
-            DAP_FREE(l_hash_str_tmp);
+            DAP_DELETE(l_hash_str);
             break;
         case TX_ITEM_TYPE_SIG:
             l_sign_tmp = dap_chain_datum_tx_item_sign_get_sig((dap_chain_tx_sig_t*)item);
             dap_string_append_printf(a_str_out, "\t SIG:\n"
                                                 "\t sig_size: %u\n", ((dap_chain_tx_sig_t*)item)->header.sig_size);
-            dap_sign_get_information(l_sign_tmp, a_str_out);
+            dap_sign_get_information(l_sign_tmp, a_str_out, a_hash_out_type);
             break;
         case TX_ITEM_TYPE_RECEIPT:
             dap_string_append_printf(a_str_out, "\t Receipt:\n"
@@ -217,21 +238,24 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                        sizeof(dap_sign_t));
                 dap_string_append_printf(a_str_out, "Exts:\n"
                                                     "   Provider:\n");
-                dap_sign_get_information(l_provider, a_str_out);
+                dap_sign_get_information(l_provider, a_str_out, a_hash_out_type);
                 dap_string_append_printf(a_str_out, "   Client:\n");
-                dap_sign_get_information(l_client, a_str_out);
+                dap_sign_get_information(l_client, a_str_out, a_hash_out_type);
             } else if (((dap_chain_datum_tx_receipt_t*)item)->exts_size == sizeof(dap_sign_t)) {
                 dap_sign_t *l_provider = DAP_NEW_Z(dap_sign_t);
                 memcpy(l_provider, ((dap_chain_datum_tx_receipt_t*)item)->exts_n_signs, sizeof(dap_sign_t));
                 dap_string_append_printf(a_str_out, "Exts:\n"
                                                     "   Provider:\n");
-                dap_sign_get_information(l_provider, a_str_out);
+                dap_sign_get_information(l_provider, a_str_out, a_hash_out_type);
             }
             break;
         case TX_ITEM_TYPE_PKEY:
             l_pkey_tmp = (dap_pkey_t*)((dap_chain_tx_pkey_t*)item)->pkey;
             dap_hash_fast(l_pkey_tmp->pkey, l_pkey_tmp->header.size, &l_pkey_hash_tmp);
-            l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&l_pkey_hash_tmp);
+            if (!dap_strcmp(a_hash_out_type, "hex"))
+                l_hash_str = dap_chain_hash_fast_to_str_new(&l_pkey_hash_tmp);
+            else
+                l_hash_str = dap_enc_base58_encode_hash_to_str(&l_pkey_hash_tmp);
             dap_string_append_printf(a_str_out, "\t PKey: \n"
                                                 "\t\t SIG type: %s\n"
                                                 "\t\t SIG size: %u\n"
@@ -245,18 +269,22 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                      ((dap_chain_tx_pkey_t*)item)->seq_no,
                                      dap_pkey_type_to_str(l_pkey_tmp->header.type),
                                      l_pkey_tmp->header.size,
-                                     l_hash_str_tmp);
-            DAP_FREE(l_hash_str_tmp);
+                                     l_hash_str);
+            DAP_DELETE(l_hash_str);
             break;
         case TX_ITEM_TYPE_IN_COND:
-            l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&((dap_chain_tx_in_t*)item)->header.tx_prev_hash);
+            l_hash_tmp = &((dap_chain_tx_in_t*)item)->header.tx_prev_hash;
+            if (!dap_strcmp(a_hash_out_type, "hex"))
+                l_hash_str = dap_chain_hash_fast_to_str_new(l_hash_tmp);
+            else
+                l_hash_str = dap_enc_base58_encode_hash_to_str(l_hash_tmp);
             dap_string_append_printf(a_str_out, "\t IN COND:\n\t\tReceipt_idx: %u\n"
                                                 "\t\t Tx_prev_hash: %s\n"
                                                 "\t\t Tx_out_prev_idx: %u\n",
                                      ((dap_chain_tx_in_cond_t*)item)->header.receipt_idx,
-                                     l_hash_str_tmp,
+                                     l_hash_str,
                                      ((dap_chain_tx_in_cond_t*)item)->header.tx_out_prev_idx);
-            DAP_FREE(l_hash_str_tmp);
+            DAP_DELETE(l_hash_str);
             break;
         case TX_ITEM_TYPE_OUT_COND:
             dap_string_append_printf(a_str_out, "\t OUT COND:\n"
@@ -273,22 +301,26 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                      dap_chain_tx_out_cond_subtype_to_str(((dap_chain_tx_out_cond_t*)item)->header.subtype));
             switch (((dap_chain_tx_out_cond_t*)item)->header.subtype) {
                 case DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_PAY:
-                l_hash_str_tmp = dap_chain_hash_fast_to_str_new(&((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.pkey_hash);
-                dap_string_append_printf(a_str_out, "\t\t\t unit: 0x%08x\n"
-                                                    "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
-                                                    "\t\t\t pkey: %s\n"
-                                                    "\t\t\t max price: %s (%"DAP_UINT64_FORMAT_U") \n",
-                                         ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit.uint32,
-                                         ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.srv_uid.uint64,
-                                         l_hash_str_tmp,
-                                         dap_chain_balance_to_coins(dap_chain_uint128_from(
-                                                ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit_price_max_datoshi)
-                                                                    ),
-                                         ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit_price_max_datoshi);
-                DAP_FREE(l_hash_str_tmp);
+                    l_hash_tmp = &((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.pkey_hash;
+                    if (!dap_strcmp(a_hash_out_type, "hex"))
+                        l_hash_str = dap_chain_hash_fast_to_str_new(l_hash_tmp);
+                    else
+                        l_hash_str = dap_enc_base58_encode_hash_to_str(l_hash_tmp);
+                    dap_string_append_printf(a_str_out, "\t\t\t unit: 0x%08x\n"
+                                                        "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
+                                                        "\t\t\t pkey: %s\n"
+                                                        "\t\t\t max price: %s (%"DAP_UINT64_FORMAT_U") \n",
+                                             ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit.uint32,
+                                             ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.srv_uid.uint64,
+                                             l_hash_str,
+                                             dap_chain_balance_to_coins(dap_chain_uint128_from(
+                                                    ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit_price_max_datoshi)
+                                                                        ),
+                                             ((dap_chain_tx_out_cond_t*)item)->subtype.srv_pay.unit_price_max_datoshi);
+                    DAP_DELETE(l_hash_str);
                 break;
                 case DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE:
-                dap_string_append_printf(a_str_out, "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
+                    dap_string_append_printf(a_str_out, "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
                                                     "\t\t\t addr: %s\n"
                                                     "\t\t\t value: %Lf",
                                          ((dap_chain_tx_out_cond_t*)item)->subtype.srv_stake.srv_uid.uint64,
@@ -298,7 +330,7 @@ static void s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                          ((dap_chain_tx_out_cond_t*)item)->subtype.srv_stake.fee_value);
                 break;
                 case DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_XCHANGE:
-                dap_string_append_printf(a_str_out, "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
+                    dap_string_append_printf(a_str_out, "\t\t\t uid: 0x%016"DAP_UINT64_FORMAT_x"\n"
                                                     "\t\t\t net id: 0x%016"DAP_UINT64_FORMAT_x"\n"
                                                     "\t\t\t token: %s\n"
                                                     "\t\t\t value: %s (%"DAP_UINT64_FORMAT_U")\n",
@@ -976,7 +1008,7 @@ static char* dap_db_history_filter(dap_chain_t * a_chain, dap_ledger_t *a_ledger
             if(!a_filter_token_name || !dap_strcmp(l_token_em->hdr.ticker, a_filter_token_name)) {
                 char * l_token_emission_address_str = dap_chain_addr_to_str(&(l_token_em->hdr.address));
                 // filter for addr
-                if(dap_strcmp(a_filtr_addr_base58,l_token_emission_address_str)) {
+                if (a_filtr_addr_base58 && dap_strcmp(a_filtr_addr_base58,l_token_emission_address_str)) {
                      break;
                 }
 
@@ -1096,7 +1128,7 @@ int com_ledger(int a_argc, char ** a_argv, char **a_str_reply)
     const char * l_hash_out_type = NULL;
     dap_chain_node_cli_find_option_val(a_argv, arg_index, a_argc, "-H", &l_hash_out_type);
     if(!l_hash_out_type)
-        l_hash_out_type = "base58";
+        l_hash_out_type = "hex";
     if(dap_strcmp(l_hash_out_type,"hex") && dap_strcmp(l_hash_out_type,"base58")) {
         dap_chain_node_cli_set_reply_text(a_str_reply, "invalid parameter -H, valid values: -H <hex | base58>");
         return -1;
@@ -1289,7 +1321,8 @@ int com_ledger(int a_argc, char ** a_argv, char **a_str_reply)
             return -2;
         }
         dap_chain_hash_fast_t *l_tx_hash = DAP_NEW(dap_chain_hash_fast_t);
-        if(dap_chain_hash_fast_from_str(l_tx_hash_str, l_tx_hash)){
+        if (dap_chain_hash_fast_from_str(l_tx_hash_str, l_tx_hash) &&
+                dap_enc_base58_hex_to_hash(l_tx_hash_str, l_tx_hash)) {
             dap_chain_node_cli_set_reply_text(a_str_reply, "Can't get hash_fast from %s", l_tx_hash_str);
             return -2;
         }