diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6ee00e78fd2235ba5d98bbc84cb1065d8eac5a85..996ba9531f4423e7462603c0ca21bb94a9c6bd87 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,10 +45,10 @@ if(LINUX)
     set(SUPPORT_PYTHON_PLUGINS ON)
 endif()
 
+set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-block-ton cs-none srv-app srv-app-db srv-datum srv-stake-pos-delegate srv-stake-lock srv-xchange")
+
 if(LINUX OR DARWIN)
-    set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-block-ton cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic srv-vpn")
-elseif(WIN32 OR BSD OR ANDROID)
-    set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-block-ton cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange")
+    set(CELLFRAME_MODULES "${CELLFRAME_MODULES} modules-dynamic srv-vpn")
 endif()
 
 if(BUILD_CELLFRAME_NODE_TESTS)
diff --git a/cellframe-sdk b/cellframe-sdk
index 527844826f439b6121a6190d073a0c10af17fcdb..d88bf4cba64d81586610db91828cf61dcee2c73e 160000
--- a/cellframe-sdk
+++ b/cellframe-sdk
@@ -1 +1 @@
-Subproject commit 527844826f439b6121a6190d073a0c10af17fcdb
+Subproject commit d88bf4cba64d81586610db91828cf61dcee2c73e
diff --git a/python-cellframe b/python-cellframe
index ab84f6d5e16011f7722b49f2cda3a19e46ef3d84..bd3947452f73da641a01ccfd48b70d5825278b2c 160000
--- a/python-cellframe
+++ b/python-cellframe
@@ -1 +1 @@
-Subproject commit ab84f6d5e16011f7722b49f2cda3a19e46ef3d84
+Subproject commit bd3947452f73da641a01ccfd48b70d5825278b2c
diff --git a/sources/main.c b/sources/main.c
index 582d289cf5fb4e87b1905069e27d714be0510fb9..74993b3f25eb6d99aca2ee14dc006a9b3ce42e32 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -110,13 +110,13 @@
 #include "dap_stream_ch_chain_net.h"
 #include "dap_stream_ch_chain_net_srv.h"
 #include "dap_chain_net_srv_xchange.h"
-#include "dap_chain_net_srv_stake.h"
+#include "dap_chain_net_srv_stake_pos_delegate.h"
+#include "dap_chain_net_srv_stake_lock.h"
 
 #include "dap_common.h"
 #include "dap_events_socket.h"
 #include "dap_client.h"
 #include "dap_http_client.h"
-//#include "dap_http_client_simple.h"
 #include "dap_http_simple.h"
 #include "dap_process_manager.h"
 
@@ -355,12 +355,6 @@ int main( int argc, const char **argv )
         log_it(L_CRITICAL, "Can't init dap chain gdb module");
         return -71;
     }
-    dap_chain_ledger_verificator_rwlock_init();
-    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_XCHANGE, dap_chain_net_srv_xchange_verificator);
-    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_PAY, dap_chain_net_srv_pay_verificator);
-    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE, dap_chain_net_srv_stake_verificator);
-    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_FEE_STAKE, dap_chain_net_srv_fee_stake_verificator);
-    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_UPDATE, dap_chain_net_srv_stake_updater);
 
     if( dap_chain_net_init() !=0){
         log_it(L_CRITICAL,"Can't init dap chain network module");
@@ -375,8 +369,12 @@ int main( int argc, const char **argv )
         log_it(L_ERROR, "Can't provide exchange capability");
     }
 
-    if (!dap_chain_net_srv_stake_init()) {
-        log_it(L_ERROR, "Can't start delegated stake service");
+    if (dap_chain_net_srv_stake_pos_delegate_init()) {
+        log_it(L_ERROR, "Can't start delegated PoS stake service");
+    }
+
+    if (dap_chain_net_srv_stake_lock_init()) {
+        log_it(L_ERROR, "Can't start stake token service");
     }
 
     if( dap_chain_net_srv_app_init() !=0){
@@ -536,7 +534,8 @@ int main( int argc, const char **argv )
 	dap_enc_ks_deinit();
     dap_chain_node_mempool_autoproc_deinit();
     dap_chain_net_srv_xchange_deinit();
-    dap_chain_net_srv_stake_deinit();
+    dap_chain_net_srv_stake_pos_delegate_deinit();
+    dap_chain_net_srv_stake_lock_deinit();
     dap_chain_net_deinit();
 #ifdef DAP_MODULES_DYNAMIC
     dap_modules_dynamic_close_cdb();
diff --git a/sources/sig_unix_handler.c b/sources/sig_unix_handler.c
index b8a03ab496eecdbcefad6aa228854fb8aa3b8d4b..81a938af914de7fee530f00d1140ab3f477b5a27 100644
--- a/sources/sig_unix_handler.c
+++ b/sources/sig_unix_handler.c
@@ -8,7 +8,8 @@
 #include "dap_global_db.h"
 #include "dap_chain_node.h"
 #include "dap_chain_net_srv_xchange.h"
-#include "dap_chain_net_srv_stake.h"
+#include "dap_chain_net_srv_stake_pos_delegate.h"
+#include "dap_chain_net_srv_stake_lock.h"
 #include "dap_chain.h"
 #include "dap_stream.h"
 #include "dap_stream_ctl.h"
@@ -45,7 +46,8 @@ static void sig_exit_handler(int sig_code) {
 #endif
     dap_chain_node_mempool_autoproc_deinit();
     dap_chain_net_srv_xchange_deinit();
-    dap_chain_net_srv_stake_deinit();
+    dap_chain_net_srv_stake_pos_delegate_deinit();
+    dap_chain_net_srv_stake_lock_deinit();
     dap_chain_net_deinit();
     dap_global_db_deinit();
     dap_chain_deinit();