diff --git a/dap_chain_wallet.c b/dap_chain_wallet.c
index fb997282608ab7b37283ab3542df1aa8a3cc4247..0d364d780765cd4ca94ea285de2cc0e06911a77d 100644
--- a/dap_chain_wallet.c
+++ b/dap_chain_wallet.c
@@ -95,11 +95,24 @@ void dap_chain_wallet_close( dap_chain_wallet_t * a_wallet)
     DAP_CHAIN_WALLET_INTERNAL_LOCAL(a_wallet);
     if(a_wallet->name)
         DAP_DELETE (a_wallet->name);
-    // TODO Make clean struct dap_chain_wallet_internal_t
+    // TODO Make clean struct dap_chain_wallet_internal_t (certs, addr)
     DAP_DELETE(l_wallet_internal);
     DAP_DELETE(a_wallet);
 }
 
+/**
+ * @brief dap_chain_wallet_get_addr
+ * @param a_wallet
+ * @return
+ */
+const dap_chain_addr_t* dap_chain_wallet_get_addr(dap_chain_wallet_t * a_wallet)
+{
+    if(!a_wallet)
+        return NULL;
+    DAP_CHAIN_WALLET_INTERNAL_LOCAL(a_wallet);
+    return l_wallet_internal->addr;
+}
+
 /**
  * @brief dap_chain_wallet_get_pkey
  * @param a_wallet
@@ -177,10 +190,11 @@ int dap_chain_wallet_save(dap_chain_wallet_t * a_wallet)
             for ( i = 0; i < l_wallet_internal->certs_count ; i ++) {
                 dap_chain_wallet_cert_hdr_t l_wallet_cert_hdr = {0};
                 l_wallet_cert_hdr.version = 1;
-                l_wallet_cert_hdr.cert_raw_size = dap_chain_cert_save_mem_size(  l_wallet_internal->certs[i] );
+                uint8_t * l_buf = dap_chain_cert_save_mem(l_wallet_internal->certs[i], &l_wallet_cert_hdr.cert_raw_size);
+                //l_wallet_cert_hdr.cert_raw_size = dap_chain_cert_save_mem_size(  l_wallet_internal->certs[i] );
+                //uint8_t * l_buf = DAP_NEW_SIZE (uint8_t, l_wallet_cert_hdr.cert_raw_size);
                 fwrite( &l_wallet_cert_hdr,1, sizeof (l_wallet_cert_hdr), l_file);
-                uint8_t * l_buf = DAP_NEW_SIZE (uint8_t, l_wallet_cert_hdr.cert_raw_size);
-                if ( dap_chain_cert_save_mem(l_wallet_internal->certs[i],l_buf) == 0 ){
+                if ( l_buf ){
                     fwrite( l_buf, 1, l_wallet_cert_hdr.cert_raw_size, l_file);
                 }else{
                     log_it(L_WARNING,"Cant write cert to  file %s: error \"%s\"",l_wallet_internal->file_name,
diff --git a/dap_chain_wallet.h b/dap_chain_wallet.h
index 7c487965dac457933a5f81701bb27c8623984b7f..6ea47ddeef670ebe5495d7731909142a7ec9b038 100644
--- a/dap_chain_wallet.h
+++ b/dap_chain_wallet.h
@@ -47,6 +47,7 @@ int dap_chain_wallet_save(dap_chain_wallet_t * a_wallet);
 
 void dap_chain_wallet_close( dap_chain_wallet_t * a_wallet);
 
+const dap_chain_addr_t* dap_chain_wallet_get_addr(dap_chain_wallet_t * a_wallet);
 size_t dap_chain_wallet_get_certs_number( dap_chain_wallet_t * a_wallet);
 dap_chain_pkey_t * dap_chain_wallet_get_pkey( dap_chain_wallet_t * a_wallet,uint32_t a_key_idx);
 dap_enc_key_t * dap_chain_wallet_get_key( dap_chain_wallet_t * a_wallet,uint32_t a_key_idx);