diff --git a/.gitmodules b/.gitmodules
index 640494894764b3b0cf57797592f89ab9cbff31ff..4f832302d16cf5fdb54b9940d9562f43b3b892a7 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -126,7 +126,11 @@
 	path = libdap-chain-common
 	url = https://gitlab.demlabs.net/cellframe/libdap-chain-common
 	branch = master
+[submodule "libdap-chain-plugins-python"]
+	path = libdap-chain-plugins-python
+	url = https://gitlab.demlabs.net/cellframe/libdap-chain-plugins-python.git
 [submodule "libdap-chain-cli"]
 	path = libdap-chain-cli
 	url = https://gitlab.demlabs.net/cellframe/libdap-chain-cli.git
 	branch = master
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ee2b230304f77aed0d6761a5eb6977caf2e7277d..f7f228f1bccef11de4360a407e2ddd5cba1e752c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,7 +52,7 @@ SET( CPACK_GENERATOR "DEB")
 SET( CPACK_PACKAGE_NAME  "${PROJECT_NAME}")
 SET( CPACK_PACKAGE_VERSION_MAJOR 2)
 SET( CPACK_PACKAGE_VERSION_MINOR 11)
-SET( CPACK_PACKAGE_VERSION_PATCH 4)
+SET( CPACK_PACKAGE_VERSION_PATCH 6)
 
 SET( CPACK_SYSTEM_TYPE "debian")
 SET( CPACK_SYSTEM_VERSION "10.0")
@@ -363,6 +363,16 @@ if(UNIX)
         dap_core
     )
 
+    if (SUPPORT_PYTHON_PLUGINS)
+        add_subdirectory(libdap-chain-plugins-python)
+        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDAP_SUPPORT_PYTHON_PLUGINS")
+        message("Build with support python plugins")
+        set(Python_ADDITIONAL_VERSION 3.7 3.6 3.5 3.4)
+        find_package(PythonLibs REQUIRED)
+        set(NODE_LIBRARIES ${NODE_LIBRARIES} ${PYTHON_LIBRARIES} dap_chain_plugins_python)
+        include_directories(${PYTHON_INCLUDE_DIR} include/)
+    endif()
+
     if(ANDROID )
         set(ALL_LIBRARIES ${NODE_LIBRARIES} ${NODE_CLI_LIBRARIES} ${NODE_TOOL_LIBRARIES} log)
 
diff --git a/README.md b/README.md
index 8734a403b19b9c206ac13af8415d42fa10bfc854..3da78c079cc952cb5b16d3b60ff042ffccd97257 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@ Cellframe Node
 [Cellframe Node usage Wiki](https://wiki.cellframe.net/index.php/Node_usage)
 
 
-## Debian/Ununtu
+## Debian/Ubuntu
 
 ### Build from sources:
 
@@ -87,7 +87,7 @@ All this could be changed after in configs
 
 
 * Auto online
-If true, the node goes online after he starts and then try to keep this state automaticaly 
+If true, the node goes online after he starts and then try to keep this state automatically 
 
 * Debug mode
 If true - produce more log output in files. Suggested to set ```true``` until the testing period 
@@ -101,7 +101,7 @@ Enable/disable listening network address. Set ```false``` if you don't want to a
 * Server address
 Network address used for listentning. Set ```0.0.0.0``` if you want to listen all network interfaces on your computer
 
-* Server port (optional, usualy don't ask)
+* Server port (optional, usually don't ask)
 Server port, 8079 by default but sometimes better to set it to ```80``` or ```443``` to masquarade service as web service. 
 
 * Kelvin-testnet: Enable network
@@ -126,7 +126,7 @@ network_mask=255.255.255.0
 #pricelist=[kelvin-testnet:0.00001:KELT:3600:SEC:mywallet0,kelvin-testnet:0.00001:cETH:3600:SEC:mywallet1,private:1:WOOD:10:SEC:mywallet0]
 ```
 
-Turn ```enabled``` parameter to ```true``` thats enable VPN service on your node. Then, the next lines ```network_address``` and ```network_mask``` usualy you don't need to touch. Default configuration reserves network addresses for 254 connections at one time, if you have more - change network mask to smth like ```255.255.0.0``` and network address to ```10.11.0.0``` thats gives you 4095 local addresses. 
+Turn ```enabled``` parameter to ```true``` thats enable VPN service on your node. Then, the next lines ```network_address``` and ```network_mask``` usually you don't need to touch. Default configuration reserves network addresses for 254 connections at one time, if you have more - change network mask to smth like ```255.255.0.0``` and network address to ```10.11.0.0``` thats gives you 4095 local addresses. 
 Thats important - all the addresses are local and used only inside virtual private network (VPN). For this address and mask also should be configured OS - should be present DNS server, switched on IP4 forwarding and configured NAT. Example of such configurations are below:
 Next line ```pricelist``` if commented out it shares service for free.
 
@@ -138,7 +138,7 @@ Pricelist line has list of values, splitted with ```:``` symbol. What it means l
 3. ```KELT``` token ticker thats will be used for payments
 4. ```3600``` units number thats costs price `0.00001`
 5. ```SEC``` unit type, could be ```SEC``` for seconds, ```DAY``` for days, ```MB``` for megabyte. IMPORTANT: if selected ```MB``` accounting would be not by time but by used traffic amount
-6.```mywallet``` wallet name for payments accomodation, should be created before with ```cellframe-node-cli```. Used for signing conditioned transactions with receipts therefore they pass values to the selected wallet.
+6.```mywallet``` wallet name for payments accommodation, should be created before with ```cellframe-node-cli```. Used for signing conditioned transactions with receipts therefore they pass values to the selected wallet.
 
 You could enter any number of such prices
 
@@ -171,7 +171,7 @@ sudo apt-get install arno-iptables-firewall
 ```
 It would ask next questions:
 
-*  `External network interfaces` answer with you network interface thats used for internet access. Usualy its `eth0` or `wifi0` but could be different, examine you network configuration firt
+*  `External network interfaces` answer with you network interface thats used for internet access. Usually its `eth0` or `wifi0` but could be different, examine you network configuration first
 *  `Do you want to manage the firewall setup with debconf` answer `Yes`
 *  `External network interfaces` answer `tun0` if you haven't configured any other VPN servers. If they are - find what the tunnel number is biggest and list all of them here with your tunnel name (`tun<max number plus 1>` )
 *  `Open external TCP-ports` answer `8079` or what the port do you configured for cellframe node when it was installed
@@ -180,13 +180,13 @@ It would ask next questions:
 *  `Internal subnets ` here should be network_adddres/network_mask from VPN service configuration, ```10.11.12.0/255.255.255.0``` in our example
 *  `Should be restarted` answer `No` becase we need some more configs
 
-Now lets increade config ask level and reconfigure the package with the next command:
+Now lets increase config ask level and reconfigure the package with the next command:
 ```
 sudo dpkg-reconfigure -plow arno-iptables-firewall
 ``` 
 
 For answers where you'll see right answers just press enter to skip them. Then the next questions should appears:
-* `Is DHCP used on external interfaces? ` usualy answer `Yes`, answer `No` only if you have static network configuration for external connections
+* `Is DHCP used on external interfaces? ` usually answer `Yes`, answer `No` only if you have static network configuration for external connections
 * `Should the machine be pingable from the outside world?` answer `Yes` because we use pings for network speed measurements
 * `Do you want to enable NAT? ` answer `Yes`
 * `Internal networks with access to external networks:` here you list internal networks again, ```10.11.12.0/255.255.255.0``` in our example
@@ -246,12 +246,12 @@ Anyway, lets create our order, changing price in it and in ```cellframe-node.cfg
 Here is exmaple based on our pricelist in previous examples:
 ```sudo /opt/cellframe-node/bin/cellframe-node-cli net_srv -net kelvin-testnet order create -direction sell -srv_uid 0x0000000000000001 -srv_class PERM -price_unit 2 -price_token KELT -price 0.0000010```
 
-And then you just wait some for network syncronization and your order will see everybody.
+And then you just wait some for network synchronisation and your order will see everybody.
 
 Description of arguments
 * ```-direction``` buy or sell, for VPN service publishing it must be ```sell```
 * ```-srv_uid``` Service UID, for VPN service set ```0x0000000000000001```
-* ```-srv_class PERM``` depricated, left for compatibility as is
+* ```-srv_class PERM``` deprecated, left for compatibility as is
 * ```-price_unit``` Set 2 for Seconds, 1 for Megabytes
 * ```-price_token``` Token ticker
 * ```-price``` Price for one unit, price for one second in our example
diff --git a/libdap b/libdap
index 214f324f5faa30ca6b00bfedae1104b09a0c1e30..97f2cafbc688e9b656427ab376d9841a7ff8b8ea 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit 214f324f5faa30ca6b00bfedae1104b09a0c1e30
+Subproject commit 97f2cafbc688e9b656427ab376d9841a7ff8b8ea
diff --git a/libdap-chain-global-db b/libdap-chain-global-db
index d743576a4b8dbd086bb61f34a03056f49d481949..0edf531dd6e4e56521222e1ac73905a03e139a95 160000
--- a/libdap-chain-global-db
+++ b/libdap-chain-global-db
@@ -1 +1 @@
-Subproject commit d743576a4b8dbd086bb61f34a03056f49d481949
+Subproject commit 0edf531dd6e4e56521222e1ac73905a03e139a95
diff --git a/libdap-chain-net b/libdap-chain-net
index 746c7e711e26c1b0cde294993f17928f557e8c50..fb9dcf2b3b108464f74a2ce4d8ea4a72edbde9a4 160000
--- a/libdap-chain-net
+++ b/libdap-chain-net
@@ -1 +1 @@
-Subproject commit 746c7e711e26c1b0cde294993f17928f557e8c50
+Subproject commit fb9dcf2b3b108464f74a2ce4d8ea4a72edbde9a4
diff --git a/libdap-chain-net-srv b/libdap-chain-net-srv
index 05cd2947d6e3547e3e111b53befeff4b043cb16a..f00357d0a187058e13b366198cb12140c9a919d7 160000
--- a/libdap-chain-net-srv
+++ b/libdap-chain-net-srv
@@ -1 +1 @@
-Subproject commit 05cd2947d6e3547e3e111b53befeff4b043cb16a
+Subproject commit f00357d0a187058e13b366198cb12140c9a919d7
diff --git a/libdap-chain-plugins-python b/libdap-chain-plugins-python
new file mode 160000
index 0000000000000000000000000000000000000000..44891e078ee5fe046e873d91635b4bd6221bb46d
--- /dev/null
+++ b/libdap-chain-plugins-python
@@ -0,0 +1 @@
+Subproject commit 44891e078ee5fe046e873d91635b4bd6221bb46d
diff --git a/libdap-chain-wallet b/libdap-chain-wallet
index 03f7babcb4376b21580b8109f811f5b2511b6cf0..38ae5b21de140f15f7c994c44cbd70ca84b7f1ba 160000
--- a/libdap-chain-wallet
+++ b/libdap-chain-wallet
@@ -1 +1 @@
-Subproject commit 03f7babcb4376b21580b8109f811f5b2511b6cf0
+Subproject commit 38ae5b21de140f15f7c994c44cbd70ca84b7f1ba
diff --git a/libdap-client b/libdap-client
index d8713a616f0824ff40236ec43cfc50c3d1220a94..4b745e81aa704db3f328b17eb9f8bd13feaa3cd0 160000
--- a/libdap-client
+++ b/libdap-client
@@ -1 +1 @@
-Subproject commit d8713a616f0824ff40236ec43cfc50c3d1220a94
+Subproject commit 4b745e81aa704db3f328b17eb9f8bd13feaa3cd0
diff --git a/libdap-stream-ch-chain b/libdap-stream-ch-chain
index 70a44d7f8f7ec73fd4fd0490caa9c1d71b76476c..429013c8e58d4bc4f8dcc765832fad7c6604fc71 160000
--- a/libdap-stream-ch-chain
+++ b/libdap-stream-ch-chain
@@ -1 +1 @@
-Subproject commit 70a44d7f8f7ec73fd4fd0490caa9c1d71b76476c
+Subproject commit 429013c8e58d4bc4f8dcc765832fad7c6604fc71
diff --git a/sources/main.c b/sources/main.c
index e5474d4ec299f426e11fb291937d49df516589fc..0f13d4e9ee76881a0cdef073c838f0898b13e259 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -110,6 +110,10 @@
 #include "dap_defines.h"
 #include "dap_file_utils.h"
 
+#ifdef DAP_SUPPORT_PYTHON_PLUGINSv
+    #include "dap_chain_plugins.h"
+#endif
+
 
 #define ENC_HTTP_URL "/enc_init"
 #define STREAM_CTL_URL "/stream_ctl"
@@ -440,6 +444,12 @@ int main( int argc, const char **argv )
 #endif
 #endif
 
+    //Init python plugins
+    #ifdef DAP_SUPPORT_PYTHON_PLUGINS
+        log_it(L_NOTICE, "Loading python plugins");
+        dap_chain_plugins_init(g_config);
+    #endif
+
 	// Endless loop for server's requests processing
 	rc = dap_server_loop(l_server);
 	// After loop exit actions
@@ -449,6 +459,9 @@ int main( int argc, const char **argv )
 
 failure:
 
+    #ifdef DAP_SUPPORT_PYTHON_PLUGINS
+        dap_chain_plugins_deinit();
+    #endif
 	dap_stream_deinit();
 	dap_stream_ctl_deinit();
 	dap_http_folder_deinit();