diff --git a/include/libdap_chain_net_python.h b/include/libdap_chain_net_python.h
index 2626627dfc6c18543dd7c4f7a37a6c2897acd17d..d74e8eb65bb78535b4463f74b00a4acf978137b9 100644
--- a/include/libdap_chain_net_python.h
+++ b/include/libdap_chain_net_python.h
@@ -1,7 +1,15 @@
+#ifndef _WRAPPING_DAP_NET_PYTHON_
+#define _WRAPPING_DAP_NET_PYTHON_
+
 #define PY_SSIZE_T_CLEAN
 #include "Python.h"
 #include "dap_chain_net.h"
 #include "wrapping_dap_chain_net_state.h"
+//#include "wrapping_dap_chain_net_state.h"
+#include "wrapping_dap_chain_common_objects.h"
+#include "wrapping_dap_chain_ledger.h"
+#include "libdap-chain-python.h"
+#include "libdap_chain_type_python.h"
 
 #ifdef __cplusplus
 extern "C"{
@@ -53,10 +61,16 @@ static PyMethodDef DapChainNetMethods[] = {
     {"syncAll", dap_chain_net_sync_all_py, METH_VARARGS, ""},
     {"procDatapool", dap_chain_net_proc_datapool_py, METH_VARARGS, ""},
     {"byName", dap_chain_net_by_name_py, METH_VARARGS | METH_STATIC, ""},
-    /*{"csAdd", (PyCFunction)dap_chain_cs_add_py, METH_VARARGS, ""},
-    {"csCreate", (PyCFunction)dap_chain_cs_create_py, METH_VARARGS, ""},
-    {"classAdd", (PyCFunction)dap_chain_class_add_py, METH_VARARGS, ""},
-    {"classCreate", (PyCFunction)dap_chain_class_create_py, METH_VARARGS, ""},*/
+    {"byId", dap_chain_net_by_id_py, METH_VARARGS | METH_STATIC, ""},
+    {"idByName", dap_chain_net_id_by_name_py, METH_VARARGS | METH_STATIC, ""},
+    {"ledgerByNetName", dap_chain_ledger_by_net_name_py, METH_VARARGS | METH_STATIC, ""},
+    {"getChainByName", dap_chain_net_get_chain_by_name_py, METH_VARARGS, ""},
+    {"getCurAddr", dap_chain_net_get_cur_addr_py, METH_VARARGS, ""},
+    {"getCurCell", dap_chain_net_get_cur_cell_py, METH_VARARGS, ""},
+    {"getGdbGroupMempool", dap_chain_net_get_gdb_group_mempool_py, METH_VARARGS | METH_STATIC, ""},
+    {"getGdbGroupMempoolByChainType", dap_chain_net_get_gdb_group_mempool_by_chain_type_py, METH_VARARGS, ""},
+    {"linksConnect", dap_chain_net_links_connect_py, METH_VARARGS, ""},
+    {"getChainByChainType", dap_chain_net_get_chain_by_chain_type_py, METH_VARARGS, ""},
     {NULL, NULL, 0, NULL}
 };
 
@@ -105,3 +119,5 @@ static PyTypeObject DapChainNetObject_DapChainNetObjectType = {
 #ifdef __cplusplus
 }
 #endif
+
+#endif //_WRAPPING_DAP_NET_PYTHON_
diff --git a/src/libdap_chain_net_python.c b/src/libdap_chain_net_python.c
index cf15221053f99acc7e484562d2b4ca4d602ca82e..60235584b81d1d42de412598697eeacc147e96bc 100644
--- a/src/libdap_chain_net_python.c
+++ b/src/libdap_chain_net_python.c
@@ -58,38 +58,81 @@ PyObject *dap_chain_net_by_name_py(PyObject *self, PyObject *args){
     return Py_BuildValue("O", obj_chain_net);
 }
 PyObject *dap_chain_net_by_id_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_net_id;
+    if (!PyArg_ParseTuple(args, "O", &obj_net_id))
+        return NULL;
+    PyObject *obj_net = _PyObject_New(&DapChainNetObject_DapChainNetObjectType);
+    ((PyDapChainNetObject*)obj_net)->chain_net = dap_chain_net_by_id(((PyDapChainNetIdObject*)obj_net_id)->net_id);
+    return Py_BuildValue("O", obj_net);
 }
 PyObject *dap_chain_net_id_by_name_py(PyObject *self, PyObject *args){
-    return NULL;
+    const char *name;
+    if (!PyArg_ParseTuple(args, "s", &name))
+        return NULL;
+    PyObject *obj_net_id = _PyObject_New(&DapChainNetIdObject_DapChainNetIdObjectType);
+    ((PyDapChainNetIdObject*)obj_net_id)->net_id = dap_chain_net_id_by_name(name);
+    return Py_BuildValue("O", obj_net_id);
 }
 PyObject *dap_chain_ledger_by_net_name_py(PyObject *self, PyObject *args){
-    return NULL;
+    const char *net_name;
+    if (!PyArg_ParseTuple(args, "s", &net_name))
+        return NULL;
+    PyObject *obj_ledger = _PyObject_New(&DapChainLedger_DapChainLedgerType);
+    ((PyDapChainLedgerObject*)obj_ledger)->ledger = dap_chain_ledger_by_net_name(net_name);
+    return Py_BuildValue("O", obj_ledger);
 }
 
 PyObject *dap_chain_net_get_chain_by_name_py(PyObject *self, PyObject *args){
-    return NULL;
+    const char* chain_name;
+    if (!PyArg_ParseTuple(args, "s", &chain_name))
+        return NULL;
+      PyObject *obj_chain = _PyObject_New(&dapChainObject_dapChainType);
+      ((PyDapChainObject*)obj_chain)->chain_t = dap_chain_net_get_chain_by_name(((PyDapChainNetObject*)self)->chain_net, chain_name);
+      return Py_BuildValue("O", obj_chain);
 }
 
 PyObject *dap_chain_net_get_cur_addr_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_node_addr = _PyObject_New(&DapChainNodeAddrObject_DapChainNodeAddrObjectType);
+    ((PyDapChainNodeAddrObject*)obj_node_addr)->node_addr = dap_chain_net_get_cur_addr(((PyDapChainNetObject*)self)->chain_net);
+    return Py_BuildValue("O", obj_node_addr);
 }
 PyObject *dap_chain_net_get_cur_cell_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_cell_id = _PyObject_New(&DapChainNodeAddrObject_DapChainNodeAddrObjectType);
+    ((PyDapChainCellIdObject*)obj_cell_id)->id = *(dap_chain_net_get_cur_cell(((PyDapChainNetObject*)self)->chain_net));
+    return Py_BuildValue("O", obj_cell_id);
 }
 PyObject *dap_chain_net_get_cur_addr_int_py(PyObject *self, PyObject *args){
-    return NULL;
+    uint64_t res = dap_chain_net_get_cur_addr_int(((PyDapChainNetObject*)self)->chain_net);
+    return PyLong_FromUnsignedLongLong(res);
 }
 
 PyObject *dap_chain_net_get_gdb_group_mempool_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_chain;
+    if (!PyArg_ParseTuple(args, "O", &obj_chain))
+        return NULL;
+    char *res = dap_chain_net_get_gdb_group_mempool(((PyDapChainObject*)obj_chain)->chain_t);
+    return Py_BuildValue("s", res);
 }
 PyObject *dap_chain_net_get_gdb_group_mempool_by_chain_type_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_chain_type;
+    if (!PyArg_ParseTuple(args, "O", &obj_chain_type))
+        return NULL;
+    char *res = dap_chain_net_get_gdb_group_mempool_by_chain_type(((PyDapChainNetObject*)self)->chain_net,
+                                                                  ((PyChainTypeObject*)obj_chain_type)->chain_type);
+    return Py_BuildValue("s", res);
+
 }
 PyObject *dap_chain_net_links_connect_py(PyObject *self, PyObject *args){
-    return NULL;
+    dap_chain_net_links_connect(((PyDapChainNetObject*)self)->chain_net);
+    PyLong_FromLong(0);
 }
 PyObject *dap_chain_net_get_chain_by_chain_type_py(PyObject *self, PyObject *args){
-    return NULL;
+    PyObject *obj_chain_type;
+    if(!PyArg_ParseTuple(args, "O", &obj_chain_type))
+        return NULL;
+    PyObject *obj_chain = _PyObject_New(&dapChainObject_dapChainType);
+    ((PyDapChainObject*)obj_chain)->chain_t = dap_chain_net_get_chain_by_chain_type(
+                ((PyDapChainNetObject*)self)->chain_net,
+                ((PyChainTypeObject*)obj_chain_type)->chain_type);
+    return Py_BuildValue("O", obj_chain);
 }