diff --git a/modules/channel/chain-net/dap_stream_ch_chain_net.c b/modules/channel/chain-net/dap_stream_ch_chain_net.c
index c66e3cbb689f0c63b6114fd3f32bd72398ee3e10..07fca63075fdd676903d77b236fd0fe7ee4c0724 100644
--- a/modules/channel/chain-net/dap_stream_ch_chain_net.c
+++ b/modules/channel/chain-net/dap_stream_ch_chain_net.c
@@ -338,7 +338,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
                         dap_sign_t *l_sign = NULL;
                         size_t sign_s = 0;
                         size_t l_orders_num = 0;
-                        dap_stream_ch_chain_rnd_t *send = NULL;
+                        dap_stream_ch_chain_validator_test_t *send = NULL;
                         dap_chain_net_srv_price_unit_uid_t l_price_unit = { { 0 } };
                         dap_chain_net_srv_uid_t l_uid = { .uint64 = DAP_CHAIN_NET_SRV_STAKE_POS_DELEGATE_ID };
                         uint256_t l_price_min = {};
@@ -361,7 +361,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
                         else
                             flags = flags & ~F_CERT;//Specified certificate not found
 
-                        send = DAP_NEW_Z_SIZE(dap_stream_ch_chain_rnd_t,sizeof(dap_stream_ch_chain_rnd_t)+sign_s);
+                        send = DAP_NEW_Z_SIZE(dap_stream_ch_chain_validator_test_t, sizeof(dap_stream_ch_chain_validator_test_t) + sign_s);
 #ifdef DAP_VERSION
                         strncpy((char *)send->header.version, (char *)DAP_VERSION, sizeof(send->header.version));
 #endif
@@ -381,7 +381,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
                         if(sign_s)
                             memcpy(send->sign,l_sign,sign_s);
                         dap_stream_ch_chain_net_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_VALIDATOR_READY ,
-                                                         l_ch_chain_net_pkt->hdr.net_id, send, sizeof(dap_stream_ch_chain_rnd_t)+sign_s);
+                                                         l_ch_chain_net_pkt->hdr.net_id, send, sizeof(dap_stream_ch_chain_validator_test_t) + sign_s);
                         dap_stream_ch_set_ready_to_write_unsafe(a_ch, true);
                         if(l_sign)
                             DAP_DELETE(l_sign);
diff --git a/modules/channel/chain-net/include/dap_stream_ch_chain_net.h b/modules/channel/chain-net/include/dap_stream_ch_chain_net.h
index cbe5538cd4c970657819a3968fec7a850e8f0172..e79bf2f993b95571c33222be34334b8e039f2a63 100644
--- a/modules/channel/chain-net/include/dap_stream_ch_chain_net.h
+++ b/modules/channel/chain-net/include/dap_stream_ch_chain_net.h
@@ -41,19 +41,19 @@ typedef struct dap_stream_ch_chain_net {
     void *notify_callback_arg;
 } dap_stream_ch_chain_net_t;
 
-typedef struct dap_stream_ch_chain_rnd{
+typedef struct dap_stream_ch_chain_validator_test{
     struct{
         /// node Version
         uint8_t version[32];
         /// autoproc status
         uint8_t flags;//0 bit -autoproc; 1 bit - find order; 2 bit - auto online; 3 bit - auto update; 6 bit - data sign; 7 bit - find cert;
         uint32_t sign_size;
-        //uint8_t data[10];
         uint8_t sign_correct;
         uint8_t overall_correct;
+        //uint8_t data[10];
     }DAP_ALIGN_PACKED header;
     byte_t sign[];
-} DAP_ALIGN_PACKED dap_stream_ch_chain_rnd_t;
+} DAP_ALIGN_PACKED dap_stream_ch_chain_validator_test_t;
 
 #define A_PROC 0x01
 #define F_ORDR 0x02
diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index e2dbf64a85887bc43a566b0884271063d0829de3..937f2372df4255ab789a481c1416770e5d4901f5 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -2558,6 +2558,7 @@ static bool dap_chain_mempool_find_addr_ledger(dap_ledger_t* a_ledger, dap_chain
         }
         if(l_dst_addr)
         {
+            log_it(L_ERROR, "Hash - %s",dap_chain_addr_to_str(l_dst_addr));
             if(!memcmp(l_dst_addr, a_addr, sizeof(dap_chain_addr_t)))
             {
                 dap_list_free(l_list_out_items);
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index b44d3e5d57e55f9edc262ba5ba4a2838752d6aee..2696f651610451f99bfd14391da6bfb46195cb87 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -647,7 +647,7 @@ int com_ledger(int a_argc, char ** a_argv, char **a_str_reply)
         dap_chain_tx_hash_processed_ht_t *l_list_tx_hash_processd = NULL;
 
         if(!l_is_all && !l_addr_base58 && !l_wallet_name && !l_tx_hash_str) {
-            dap_cli_server_cmd_set_reply_text(a_str_reply, "command requires parameter '-all' or '-addr' or '-w'");
+            dap_cli_server_cmd_set_reply_text(a_str_reply, "command 'tx' requires parameter '-all' or '-addr' or '-w' or '-tx'");
             return -1;
         }
         // Select chain network
@@ -716,21 +716,29 @@ int com_ledger(int a_argc, char ** a_argv, char **a_str_reply)
                 dap_list_free1(l_txs_list);
             }
         } else {
-            l_str_out = dap_ledger_token_tx_item_list(l_ledger,l_addr,l_hash_out_type);
-            if(l_tx_hash_str) {
-                dap_string_append_printf(l_str_ret, "history for tx hash %s:\n%s\n", l_tx_hash_str,
-                        l_str_out ? l_str_out : " empty");
-            }
-            else if(l_addr) {
+            if(l_addr)
+            {
+                l_str_out = dap_ledger_token_tx_item_list(l_ledger,l_addr,l_hash_out_type);
                 char *l_addr_str = dap_chain_addr_to_str(l_addr);
                 dap_string_append_printf(l_str_ret, "history for addr %s:\n%s\n", l_addr_str,
                         l_str_out ? l_str_out : " empty");
                 DAP_DELETE(l_addr_str);
-            }
+            }else if(l_tx_hash_str) {
+                dap_chain_datum_tx_t *l_tx = dap_chain_ledger_tx_find_by_hash(l_ledger,&l_tx_hash);
+                if(l_tx){
+                    size_t l_tx_size = dap_chain_datum_tx_get_size(l_tx);
+                    dap_hash_fast_t l_tx_hash = {0};
+                    dap_hash_fast(l_tx, l_tx_size, &l_tx_hash);
+                    const char *l_tx_ticker = dap_chain_ledger_tx_get_token_ticker_by_hash(l_ledger, &l_tx_hash);
+                    dap_chain_datum_dump_tx(l_tx,l_tx_ticker,l_str_ret,l_hash_out_type,&l_tx_hash);
+                    dap_string_append_printf(l_str_ret, "history for tx hash %s:\n%s\n", l_tx_hash_str,
+                            l_str_out ? l_str_out : " empty");
+                }
+                else
+                    dap_string_append_printf(l_str_ret, "There is not transaction %s in the network ledger\n",l_tx_hash_str);
+            }            
         }
         DAP_DELETE(l_str_out);
-
-
         DAP_DELETE(l_addr);
         s_dap_chain_tx_hash_processed_ht_free(l_list_tx_hash_processd);
         // all chain
diff --git a/modules/net/dap_chain_node_client.c b/modules/net/dap_chain_node_client.c
index 2a24fc167989273398781cac30b94a59b9e34a79..58f6053e905db8dd6fdbad1fb3207e70f7e9101d 100644
--- a/modules/net/dap_chain_node_client.c
+++ b/modules/net/dap_chain_node_client.c
@@ -334,7 +334,7 @@ static void s_ch_chain_callback_notify_packet_in2(dap_stream_ch_chain_net_t* a_c
             l_node_client->remote_node_addr = *(dap_chain_node_addr_t*)a_pkt_net->data;
         }
         pthread_mutex_lock(&l_node_client->wait_mutex);
-        l_node_client->callbacks_arg = a_pkt_net->data;
+        l_node_client->callbacks_arg = DAP_DUP_SIZE(a_pkt_net->data, a_pkt_net_data_size);
         l_node_client->state = NODE_CLIENT_STATE_VALID_READY;
         dap_cond_signal(l_node_client->wait_cond);
         pthread_mutex_unlock(&l_node_client->wait_mutex);
diff --git a/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c
index 99185b9c4cd11030178d7ef19effc6320c40fd99..4402d1ecb82a137d210de44869c8c946aaad15c7 100644
--- a/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c
+++ b/modules/service/stake_pos_delegate/dap_chain_net_srv_stake_pos_delegate.c
@@ -1155,8 +1155,8 @@ static int callback_compare_tx_list(const void * a_datum1, const void * a_datum2
     return -1;
 }
 
-bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_fast_t *a_tx_hash, dap_stream_ch_chain_rnd_t * out_data,
-                                             int a_time_connect, int a_time_respone,char **a_str_reply)
+bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_fast_t *a_tx_hash, dap_stream_ch_chain_validator_test_t * out_data,
+                                             int a_time_connect, int a_time_respone)
 {
     char *l_key = NULL;
     size_t l_node_info_size = 0;
@@ -1172,7 +1172,6 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
     dap_chain_tx_out_cond_t *l_tx_out_cond = dap_chain_datum_tx_out_cond_get(l_tx,
                                                   DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_POS_DELEGATE, &l_prev_cond_idx);
     if (!l_tx_out_cond) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "Requested conditional transaction has no requires conditional output");
         log_it(L_WARNING, "Requested conditional transaction has no requires conditional output");
         return false;
     }
@@ -1181,7 +1180,6 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
     l_key = dap_chain_node_addr_to_hash_str(l_signer_node_addr);
     if(!l_key)
     {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "can't calculate hash of addr");
         log_it(L_WARNING, "can't calculate hash of addr");
         return false;
     }
@@ -1190,7 +1188,6 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
     l_remote_node_info = (dap_chain_node_info_t *) dap_global_db_get_sync(a_net->pub.gdb_nodes, l_key, &l_node_info_size, NULL, NULL);
 
     if(!l_remote_node_info) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "node not found in base");
         log_it(L_WARNING, "node not found in base");
         DAP_DELETE(l_key);
         return false;
@@ -1198,8 +1195,6 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
 
     size_t node_info_size_must_be = dap_chain_node_info_get_size(l_remote_node_info);
     if(node_info_size_must_be != l_node_info_size) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "node has bad size in base=%zu (must be %zu)", l_node_info_size,
-                node_info_size_must_be);
         log_it(L_WARNING, "node has bad size in base=%zu (must be %zu)", l_node_info_size, node_info_size_must_be);
         DAP_DELETE(l_remote_node_info);
         DAP_DELETE(l_key);
@@ -1209,14 +1204,14 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
     // start connect
     l_node_client = dap_chain_node_client_connect_channels(a_net,l_remote_node_info,"N");
     if(!l_node_client) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "can't connect");
+        log_it(L_WARNING, "can't connect");
         DAP_DELETE(l_remote_node_info);
         return false;
     }
     // wait connected
     size_t rc = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_ESTABLISHED, a_time_connect);
     if (rc) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "No response from node");
+        log_it(L_WARNING, "No response from node");
         // clean client struct
         dap_chain_node_client_close_mt(l_node_client);
         DAP_DELETE(l_remote_node_info);
@@ -1233,7 +1228,6 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
                                             a_net->pub.id,
                                             l_test_data, sizeof(l_test_data));
     if (rc == 0) {
-        dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't send DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_VALIDATOR_READY_REQUEST packet");
         log_it(L_WARNING, "Can't send DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_VALIDATOR_READY_REQUEST packet");
         dap_chain_node_client_close_mt(l_node_client);
         DAP_DELETE(l_remote_node_info);
@@ -1242,11 +1236,12 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
 
     rc = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_VALID_READY, a_time_respone);
     if (!rc) {
-        dap_stream_ch_chain_rnd_t *validators_data = (dap_stream_ch_chain_rnd_t*)l_node_client->callbacks_arg;
+        dap_stream_ch_chain_validator_test_t *validators_data = (dap_stream_ch_chain_validator_test_t*)l_node_client->callbacks_arg;
+
         dap_sign_t *l_sign = NULL;        
         bool l_sign_correct = false;
         if(validators_data->header.sign_size){
-            l_sign = (dap_sign_t*)(l_node_client->callbacks_arg + sizeof(dap_stream_ch_chain_rnd_t));
+            l_sign = (dap_sign_t*)(l_node_client->callbacks_arg + sizeof(dap_stream_ch_chain_validator_test_t));
             dap_hash_fast_t l_sign_pkey_hash;
             dap_sign_get_pkey_hash(l_sign, &l_sign_pkey_hash);
             l_sign_correct = dap_hash_fast_compare(&l_tx_out_cond->subtype.srv_stake_pos_delegate.signing_addr.data.hash_fast, &l_sign_pkey_hash);
@@ -1254,11 +1249,11 @@ bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_f
                 l_sign_correct = dap_sign_verify_all(l_sign, validators_data->header.sign_size, l_test_data, sizeof(l_test_data));
         }
         l_overall_correct = l_sign_correct && validators_data->header.flags == 0xCF;
-
-        memcpy(out_data,validators_data,sizeof(dap_stream_ch_chain_rnd_t));
+        *out_data = *validators_data;
         out_data->header.sign_correct = l_sign_correct ? 1 : 0;
         out_data->header.overall_correct = l_overall_correct ? 1 : 0;
     }
+    DAP_DELETE(l_node_client->callbacks_arg);
     dap_chain_node_client_close_mt(l_node_client);
     DAP_DELETE(l_remote_node_info);
     return l_overall_correct;
@@ -1314,7 +1309,7 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply)
             const char * str_tx_hash = NULL;
             dap_chain_net_t * l_net = NULL;
             dap_hash_fast_t l_tx = {};
-            dap_stream_ch_chain_rnd_t l_out = {0};
+            dap_stream_ch_chain_validator_test_t l_out = {0};
 
             dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-net", &l_netst);
             dap_cli_server_cmd_find_option_val(a_argv, l_arg_index, a_argc, "-tx", &str_tx_hash);
@@ -1323,7 +1318,6 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply)
                 dap_cli_server_cmd_set_reply_text(a_str_reply, "Network %s not found", l_netst);
                 return -1;
             }
-
             if (!str_tx_hash) {
                 dap_cli_server_cmd_set_reply_text(a_str_reply, "Command check requires parameter -tx");
                 return -2;
@@ -1332,8 +1326,7 @@ static int s_cli_srv_stake(int a_argc, char **a_argv, char **a_str_reply)
                 dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't get hash_fast from %s", str_tx_hash);
                 return -3;
             }
-
-            dap_chain_net_srv_stake_check_validator(l_net, &l_tx, &l_out, 7000, 10000, a_str_reply);
+            dap_chain_net_srv_stake_check_validator(l_net, &l_tx, &l_out, 7000, 15000);
             dap_cli_server_cmd_set_reply_text(a_str_reply,
                                               "-------------------------------------------------\n"
                                               "VERSION \t |  %s \n"
diff --git a/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h b/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h
index 33759cc197465013037bfbc244d9bc09cf11d558..44000c08dd1a0b44326ddeac7f244f8e18266242 100644
--- a/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h
+++ b/modules/service/stake_pos_delegate/include/dap_chain_net_srv_stake_pos_delegate.h
@@ -81,8 +81,8 @@ void dap_chain_net_srv_stake_get_fee_validators_str(dap_chain_net_t *a_net, dap_
 int dap_chain_net_srv_stake_load_cache(dap_chain_net_t *a_net);
 void dap_chain_net_srv_stake_purge(dap_chain_net_t *a_net);
 
-bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net,dap_hash_fast_t *a_tx_hash, dap_stream_ch_chain_rnd_t * out_data,
-                                             int a_time_connect, int a_time_respone, char **a_str_reply);
+bool dap_chain_net_srv_stake_check_validator(dap_chain_net_t * a_net, dap_hash_fast_t *a_tx_hash, dap_stream_ch_chain_validator_test_t * out_data,
+                                             int a_time_connect, int a_time_respone);
 
 dap_chain_datum_decree_t *dap_chain_net_srv_stake_decree_approve(dap_chain_net_t *a_net,
                                                                  dap_hash_fast_t *a_stake_tx_hash, dap_cert_t *a_cert);