diff --git a/dap_chain_common.c b/dap_chain_common.c
index 718100e37c62fd907145944097f4770d77a4525b..ae94273522f69174270ff30aa59a71b2deee3e9a 100755
--- a/dap_chain_common.c
+++ b/dap_chain_common.c
@@ -66,11 +66,15 @@ size_t dap_chain_hash_fast_to_str(dap_chain_hash_fast_t * a_hash, char * a_str,
         log_it(L_ERROR, "String for hash too small, need %u but have only %u", c_hash_str_size, a_str_max);
     }
     size_t i;
+    // faster conversion to string
     snprintf(a_str, 3, "0x");
-    for(i = 0; i < sizeof(a_hash->raw); ++i)
-        snprintf(a_str + i * 2 + 2, 3, "%02x", a_hash->raw[i]);
-    a_str[c_hash_str_size] = '\0';
-    return strlen(a_str);
+    size_t l_ret = dap_bin2hex(a_str + 2, a_hash->raw, sizeof(a_hash->raw));
+    //for(i = 0; i < sizeof(a_hash->raw); ++i)
+    //    snprintf(a_str + i * 2 + 2, 3, "%02x", (a_hash->raw[i]));
+    a_str[c_hash_str_size - 1] = '\0';
+    if(!l_ret)
+        return 0;
+    return c_hash_str_size - 1; //strlen(a_str);
 }
 
 /**