diff --git a/dap_chain_net_srv.c b/dap_chain_net_srv.c
index 4c730e4c94853c9d3b9091eca8f576d549e3171b..acc816210b288aa4a358c5fd6023620a1fba3353 100755
--- a/dap_chain_net_srv.c
+++ b/dap_chain_net_srv.c
@@ -77,7 +77,7 @@ static void s_load_all(void);
  * @brief dap_chain_net_srv_init
  * @return
  */
-int dap_chain_net_srv_init(void)
+int dap_chain_net_srv_init(dap_config_t * a_cfg)
 {
     m_uid = NULL;
     m_uid_count = 0;
@@ -394,15 +394,16 @@ static int s_cli_net_srv( int argc, char **argv, char **a_str_reply)
  * @param a_uid
  * @param a_callback_new
  */
-int dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_chain_net_srv_callback_data_t a_callback_request)
+dap_chain_net_srv_t* dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_chain_net_srv_callback_data_t a_callback_request)
 {
     int ret=0;
     service_list_t *l_sdata = NULL;
+    dap_chain_net_srv_t * l_srv = NULL;
     dap_chain_net_srv_uid_t l_uid = {.uint64 = a_uid.uint64 }; // Copy to let then compiler to pass args via registers not stack
     pthread_mutex_lock(&s_srv_list_mutex);
     HASH_FIND(hh, s_srv_list, &l_uid, sizeof(l_uid), l_sdata);
     if(l_sdata == NULL) {
-        dap_chain_net_srv_t * l_srv = DAP_NEW_Z(dap_chain_net_srv_t);
+        l_srv = DAP_NEW_Z(dap_chain_net_srv_t);
         l_srv->uid.uint64 = a_uid.uint64;
         l_srv->callback_requested = a_callback_request;
         l_sdata = DAP_NEW_Z(service_list_t);
@@ -412,10 +413,9 @@ int dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_chain_net_srv_callba
         HASH_ADD(hh, s_srv_list, uid, sizeof(l_srv->uid), l_sdata);
     }else{
         log_it(L_ERROR, "Already present service with 0x%016llX ", a_uid.uint64);
-        ret = -1;
     }
     pthread_mutex_unlock(&s_srv_list_mutex);
-    return ret;
+    return l_srv;
 }
 
 /**
diff --git a/dap_chain_net_srv.h b/dap_chain_net_srv.h
index 4d2b20505862453e9768b76bb2ffc1a2ec8c2f24..7cb033d59c1af9679c0740d8d736eaf33b6ce763 100755
--- a/dap_chain_net_srv.h
+++ b/dap_chain_net_srv.h
@@ -47,9 +47,9 @@ typedef struct dap_chain_net_srv
 typedef void (*dap_chain_net_srv_callback_new_t)(dap_chain_net_srv_t *, dap_config_t *);
 
 
-int dap_chain_net_srv_init(void);
+int dap_chain_net_srv_init(dap_config_t * a_cfg);
 void dap_chain_net_srv_deinit(void);
-int dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_chain_net_srv_callback_data_t a_callback_request);
+dap_chain_net_srv_t* dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_chain_net_srv_callback_data_t a_callback_request);
 void dap_chain_net_srv_del(dap_chain_net_srv_t * a_srv);
 void dap_chain_net_srv_del_all(void);
 dap_chain_net_srv_t * dap_chain_net_srv_get(dap_chain_net_srv_uid_t a_uid);
diff --git a/dap_chain_net_srv_common.h b/dap_chain_net_srv_common.h
index b210f987d834e9d18e78811b4861f3449b5518ec..d0e8548158fcec8fa845db9051a03719caba2bd8 100755
--- a/dap_chain_net_srv_common.h
+++ b/dap_chain_net_srv_common.h
@@ -32,6 +32,7 @@
 #include "dap_chain_common.h"
 #include "dap_chain_ledger.h"
 #include "dap_chain_net.h"
+#include "dap_chain_wallet.h"
 
 
 
@@ -76,6 +77,7 @@ typedef void (*dap_chain_callback_trafic_t)(dap_client_remote_t *, dap_stream_ch
 
 typedef struct dap_chain_net_srv_price
 {
+    dap_chain_wallet_t * wallet;
     char * net_name;
     dap_chain_net_t * net;
     uint64_t value_datoshi;