diff --git a/modules/node-cli/dap_chain_node_cli_cmd.c b/modules/node-cli/dap_chain_node_cli_cmd.c
index 5d3563ec372c6f699fab85faabdbc7edb537a3a8..e3524f90564a3d00e37bff95ff5b5bc86152cf8a 100644
--- a/modules/node-cli/dap_chain_node_cli_cmd.c
+++ b/modules/node-cli/dap_chain_node_cli_cmd.c
@@ -1949,16 +1949,20 @@ int l_arg_index = 1, l_rc, cmd_num = CMD_NONE;
                 l_addr = dap_chain_addr_from_str(l_addr_str);
             }
             
-            if (!l_addr){
-                if(l_wallet)
+            if (!l_addr || dap_chain_addr_is_blank(l_addr)){
+                if(l_wallet) {
+                    dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_TX_WALLET_CAN_NOT_GET_ADDR,
+                                           "Wallet %s contains an unknown certificate type, the wallet address could not be calculated.", l_wallet_name);
                     dap_chain_wallet_close(l_wallet);
+                    return DAP_CHAIN_NODE_CLI_COM_TX_WALLET_CAN_NOT_GET_ADDR;
+                }
                 dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_TX_WALLET_FOUND_ERR,
-                                       "Wallet not found");
+                                       "Wallet not found or addr not recognized");
                 json_object_put(json_arr_out);
                 return DAP_CHAIN_NODE_CLI_COM_TX_WALLET_FOUND_ERR;
             } else {
                 l_net = dap_chain_net_by_id(l_addr->net_id);
-                if(l_net) {
+                if (l_net) {
                     l_ledger = l_net->pub.ledger;
                     l_net_name = l_net->pub.name;
                 } else {
diff --git a/modules/node-cli/include/dap_chain_node_cli_cmd.h b/modules/node-cli/include/dap_chain_node_cli_cmd.h
index 2c83ebd9ee1865b640c621ec66e0c497ab84ca1c..984f88d8071d56a7d399a274d957f9e3e60a6e9c 100644
--- a/modules/node-cli/include/dap_chain_node_cli_cmd.h
+++ b/modules/node-cli/include/dap_chain_node_cli_cmd.h
@@ -158,6 +158,7 @@ typedef enum s_com_tx_wallet_err{
     DAP_CHAIN_NODE_CLI_COM_TX_WALLET_HASH_ERR,
     DAP_CHAIN_NODE_CLI_COM_TX_WALLET_CHAIN_PARAM_ERR,
     DAP_CHAIN_NODE_CLI_COM_TX_WALLET_INTERNAL_ERR,
+    DAP_CHAIN_NODE_CLI_COM_TX_WALLET_CAN_NOT_GET_ADDR,
 
     /* add custom codes here */
 
diff --git a/modules/wallet/dap_chain_wallet.c b/modules/wallet/dap_chain_wallet.c
index 5ca2f079d162661c1a4c88c5cc126032493f6d35..66f93834872971df69edb2849991ef2447cc0a40 100644
--- a/modules/wallet/dap_chain_wallet.c
+++ b/modules/wallet/dap_chain_wallet.c
@@ -490,8 +490,10 @@ dap_chain_addr_t *dap_cert_to_addr(dap_cert_t **a_certs, size_t a_count, size_t
     dap_chain_addr_t *l_addr = NULL;
     DAP_NEW_Z_RET_VAL(l_addr, dap_chain_addr_t, NULL, NULL);
     dap_enc_key_t *l_key = dap_cert_get_keys_from_certs(a_certs, a_count, a_key_start_index);
-    dap_chain_addr_fill_from_key(l_addr, l_key, a_net_id);
-    dap_enc_key_delete(l_key);
+    if (l_key) {
+        dap_chain_addr_fill_from_key(l_addr, l_key, a_net_id);
+        dap_enc_key_delete(l_key);
+    }
     return l_addr;
 }
 
@@ -1027,6 +1029,7 @@ const char* dap_chain_wallet_check_sign(dap_chain_wallet_t *a_wallet) {
     dap_chain_wallet_internal_t *l_wallet_internal = DAP_CHAIN_WALLET_INTERNAL(a_wallet);
     dap_return_val_if_pass(!l_wallet_internal->certs || !l_wallet_internal->certs, "" );
     for (size_t i = 0; i < l_wallet_internal->certs_count; ++i) {
+        dap_return_val_if_pass(!l_wallet_internal->certs[i], "The wallet contains an undefined certificate.\n");
         dap_sign_type_t l_sign_type = dap_sign_type_from_key_type(l_wallet_internal->certs[i]->enc_key->type);
         if (SIG_TYPE_BLISS == l_sign_type.type || SIG_TYPE_PICNIC == l_sign_type.type || SIG_TYPE_TESLA == l_sign_type.type) {
             return "The Bliss, Picnic and Tesla signatures is deprecated. We recommend you to create a new wallet with another available signature and transfer funds there.\n";