diff --git a/dap-sdk b/dap-sdk
index d33c3b2e4cc52937947bc428f377b789fef12f15..a5e0725cef9ddc54c059fd948db93d9ffd52949c 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit d33c3b2e4cc52937947bc428f377b789fef12f15
+Subproject commit a5e0725cef9ddc54c059fd948db93d9ffd52949c
diff --git a/modules/common/include/dap_chain_common.h b/modules/common/include/dap_chain_common.h
index bfa3c9d2f3d5e7daa2836741d3419a9fbb8312b6..3eb823c5a78d916f99a0c1fd96ec349a57c5eb86 100644
--- a/modules/common/include/dap_chain_common.h
+++ b/modules/common/include/dap_chain_common.h
@@ -33,6 +33,7 @@
 #include "dap_sign.h"
 #include "dap_hash.h"
 #include <json-c/json.h>
+#include "dap_strfuncs.h"
 
 #define DAP_CHAIN_ADDR_VERSION_CURRENT 1
 
@@ -86,6 +87,24 @@ typedef union dap_chain_node_addr {
 #define NODE_ADDR_FPS_ARGS_S(a)  &a.words[3],&a.words[2],&a.words[1],&a.words[0]
 #endif
 
+DAP_STATIC_INLINE bool dap_chain_node_addr_str_check(const char *a_addr_str) {
+    size_t l_str_len = dap_strlen(a_addr_str);
+    if (l_str_len == 22) {
+        for (int n =0; n < 22; n+= 6) {
+            if (!dap_is_xdigit(a_addr_str[n]) || !dap_is_xdigit(a_addr_str[n + 1]) ||
+                !dap_is_xdigit(a_addr_str[n + 2]) || !dap_is_xdigit(a_addr_str[n + 3])) {
+                return false;
+            }
+        }
+        for (int n = 4; n < 18; n += 6) {
+            if (a_addr_str[n] != ':' || a_addr_str[n + 1] != ':')
+                return false;
+        }
+        return true;
+    }
+    return false;
+}
+
 DAP_STATIC_INLINE int dap_chain_node_addr_from_str(dap_chain_node_addr_t *a_addr, const char *a_addr_str)
 {
     if (sscanf(a_addr_str, NODE_ADDR_FP_STR, NODE_ADDR_FPS_ARGS(a_addr)) == 4)
diff --git a/modules/net/srv/dap_chain_net_srv.c b/modules/net/srv/dap_chain_net_srv.c
index bcc3931eb49d27da89ddb4c7c061a67bb31b6b70..122ea42a1f6fc8ef418f10b561cabb8c522f8c78 100644
--- a/modules/net/srv/dap_chain_net_srv.c
+++ b/modules/net/srv/dap_chain_net_srv.c
@@ -497,9 +497,9 @@ static int s_cli_net_srv( int argc, char **argv, char **a_str_reply)
                     l_expires = (dap_time_t ) atoll( l_expires_str);
                 l_srv_uid.uint64 = (uint64_t) atoll( l_srv_uid_str);
                 if (l_node_addr_str){
-                    if (dap_chain_node_addr_from_str( &l_node_addr, l_node_addr_str ) == 0 )
-                        log_it( L_DEBUG, "node addr " NODE_ADDR_FP_STR, NODE_ADDR_FP_ARGS_S(l_node_addr) );
-                    else {
+                    if (dap_chain_node_addr_str_check(l_node_addr_str)) {
+                        dap_chain_node_addr_from_str( &l_node_addr, l_node_addr_str );
+                    } else {
                         log_it(L_ERROR, "Can't parse \"%s\" as node addr", l_node_addr_str);
                         dap_cli_server_cmd_set_reply_text(a_str_reply, "The order has not been created. "
                                                                        "Failed to convert string representation of '%s' "