diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f7200e25dc48b873229d15a3d3e58ec5eb5f0eb..3d1db0661cede5ed300a2b12b2e47493d5af8d0a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,7 @@ set(CELLFRAME_SDK_NATIVE_VERSION "3.3-0")
 
 add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"")
 
+
 set(DAPSDK_MODULES "")
 
 if(NOT DEFINED CELLFRAME_MODULES)
@@ -42,6 +43,7 @@ endif(NOT DAP_INT128_SUPPORT)
 
 if (BUILD_CELLFRAME_SDK_TESTS)
     enable_testing()
+    set(SPHINCSPLUS_FLEX ON)
     add_definitions("-DDAP_CHAIN_LEDGER_TEST")
     set(CELLFRAME_MODULES ${CELLFRAME_MODULES} "test-framework")
     if (NOT OFF_CORE_CELLFRAME_SDK_TESTS_OFF MATCHES "all")
diff --git a/dap-sdk b/dap-sdk
index 365d039874eae7f51510db294000f5f6b05537a2..96ba735518d1557f60dedbf46846b2fcd0834eb0 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 365d039874eae7f51510db294000f5f6b05537a2
+Subproject commit 96ba735518d1557f60dedbf46846b2fcd0834eb0
diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index 18ffdfc4dca7fbdcfa139a19dabb27b35cfbcd4d..10253754e525e87ceec09f3579294af93e8cd357 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -2630,7 +2630,7 @@ int dap_chain_ledger_token_emission_add_check(dap_ledger_t *a_ledger, byte_t *a_
                         for (uint16_t k=0; k< l_token_item->auth_signs_total; k++) {
                             if (dap_hash_fast_compare(&l_sign_pkey_hash, &l_token_item->auth_pkeys_hash[k])) {
                                 // Verify if its token emission header signed
-                                if (dap_sign_verify(l_sign, l_emi_ptr_check_size, l_sign_data_check_size) == 1) {
+                                if (!dap_sign_verify(l_sign, l_emi_ptr_check_size, l_sign_data_check_size)) {
                                     l_aproves++;
                                     break;
                                 }
diff --git a/modules/consensus/block-pos/dap_chain_cs_block_pos.c b/modules/consensus/block-pos/dap_chain_cs_block_pos.c
index dc2e90d76bb1c0fc541609cdd2b57e1aea011f59..b6e279d1656c3ad73b5e2f8884c6198748873719 100644
--- a/modules/consensus/block-pos/dap_chain_cs_block_pos.c
+++ b/modules/consensus/block-pos/dap_chain_cs_block_pos.c
@@ -262,7 +262,7 @@ static int s_callback_block_verify(dap_chain_cs_blocks_t *a_blocks, dap_chain_bl
         }
 
         int l_sign_verified = dap_sign_verify(l_sign, a_block, l_block_data_size);
-        if (l_sign_verified != 1) {
+        if (l_sign_verified) {
             log_it(L_WARNING, "Block's sign is incorrect: code %d", l_sign_verified);
             return -41;
         }
diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
index cf0749d941f285435b5a84b5617083755074253d..70c4b64b2610b70a66a0881720abebdd1624583e 100644
--- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
+++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
@@ -908,8 +908,8 @@ static int s_callback_event_verify(dap_chain_cs_dag_t * a_dag, dap_chain_cs_dag_
             // Compare signature with auth_certs
             a_event->header.signs_count = i;
             for (uint16_t j = 0; j < l_poa_pvt->auth_certs_count; j++) {
-                if (dap_cert_compare_with_sign( l_poa_pvt->auth_certs[j], l_sign) == 0
-                            && dap_sign_verify(l_sign, a_event, l_offset_from_beginning) == 1 ){
+                if (!dap_cert_compare_with_sign( l_poa_pvt->auth_certs[j], l_sign)
+                            && !dap_sign_verify(l_sign, a_event, l_offset_from_beginning)){
                     l_signs_verified_count++;
                     break;
                 }
diff --git a/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c b/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
index 440b2fa97863a04dd16cd869702d4cfb9e0bcfda..0222e24928e7c98553983b1083e6b287f20d6cdf 100644
--- a/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
+++ b/modules/consensus/dag-pos/dap_chain_cs_dag_pos.c
@@ -269,7 +269,7 @@ static int s_callback_event_verify(dap_chain_cs_dag_t * a_dag, dap_chain_cs_dag_
             size_t l_dag_event_size_without_sign = dap_chain_cs_dag_event_calc_size_excl_signs(a_dag_event,a_dag_event_size);
             int l_sign_verified = dap_sign_verify(l_sign, a_dag_event, l_dag_event_size_without_sign);
             a_dag_event->header.signs_count = l_signs_total;
-            if (l_sign_verified != 1) {
+            if (l_sign_verified) {
                 log_it(L_WARNING, "Event's sign is incorrect: code %d", l_sign_verified);
                 return -41;
             }
diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
index 83a2d70ea5ff40e69f1ae4ee4cf6b07f60ef7715..abe85906fa54f48572d2c24e121c2206e12bde44 100644
--- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c
+++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c
@@ -2226,10 +2226,10 @@ static void s_session_packet_in(void *a_arg, dap_chain_node_addr_t *a_sender_nod
         }
 
         size_t l_offset = dap_chain_block_get_sign_offset(l_store->candidate, l_store->candidate_size);
-        bool l_sign_verified = dap_sign_verify(l_candidate_sign, l_store->candidate,
-                                                l_offset + sizeof(l_store->candidate->hdr)) == 1;
+        int l_sign_verified = dap_sign_verify(l_candidate_sign, l_store->candidate,
+                                                l_offset + sizeof(l_store->candidate->hdr));
         // check candidate's sign
-        if (l_sign_verified) {
+        if (!l_sign_verified) {
             l_store->candidate_signs = dap_list_append(l_store->candidate_signs,
                                                        DAP_DUP_SIZE(l_candidate_sign, l_candidate_sign_size));
             if (dap_list_length(l_store->candidate_signs) == l_round->validators_synced_count) {
@@ -2469,7 +2469,7 @@ static int s_callback_block_verify(dap_chain_cs_blocks_t *a_blocks, dap_chain_bl
                 continue;
             }
         }
-        if (dap_sign_verify(l_sign, a_block, l_block_excl_sign_size) == 1)
+        if (!dap_sign_verify(l_sign, a_block, l_block_excl_sign_size))
             l_signs_verified_count++;
     }
     DAP_DELETE(l_signs);
diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index b48ae81e5d1f988a987341f5be09902fcf10c392..0ae4f5cf7eed65389bfe3f818f22eb6f49cc7416 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -2473,7 +2473,7 @@ int com_token_decl_sign(int a_argc, char **a_argv, char ** a_str_reply)
                 size_t l_signs_size = 0, i = 1;
                 for (i = 1; i <= l_datum_token->signs_total; i++){
                     dap_sign_t *l_sign = (dap_sign_t *)(l_datum_token->data_n_tsd + l_tsd_size + l_signs_size);
-                    if( dap_sign_verify(l_sign, l_datum_token, sizeof(*l_datum_token) - sizeof(uint16_t)) != 1) {
+                    if(dap_sign_verify(l_sign, l_datum_token, sizeof(*l_datum_token) - sizeof(uint16_t))) {
                         log_it(L_WARNING, "Wrong signature %zu for datum_token with key %s in mempool!", i, l_datum_hash_out_str);
                         dap_cli_server_cmd_set_reply_text(a_str_reply,
                                 "Datum %s with datum token has wrong signature %zu, break process and exit",