diff --git a/modules/type/blocks/dap_chain_cs_blocks.c b/modules/type/blocks/dap_chain_cs_blocks.c
index 9fc5f3c5554ee1c339b741252d49db5a68c4ca47..d013cb0a7af7630c89a43a6893b080ebd19bb602 100644
--- a/modules/type/blocks/dap_chain_cs_blocks.c
+++ b/modules/type/blocks/dap_chain_cs_blocks.c
@@ -363,6 +363,8 @@ static int s_cli_blocks(int a_argc, char ** a_argv, char **a_str_reply)
     };
     const size_t l_subcmd_str_count=sizeof(l_subcmd_strs)/sizeof(*l_subcmd_strs)-1;
     const char* l_subcmd_str_args[l_subcmd_str_count];
+	for(size_t i=0;i<l_subcmd_str_count;i++)
+        l_subcmd_str_args[i]=NULL;
     const char* l_subcmd_str_arg;
     const char* l_subcmd_str = NULL;
 
@@ -472,98 +474,105 @@ static int s_cli_blocks(int a_argc, char ** a_argv, char **a_str_reply)
             dap_chain_block_t  * l_block;
             size_t l_block_size = 0;
             dap_chain_hash_fast_t l_block_hash={0};
-            dap_chain_hash_fast_from_str( l_subcmd_str_arg, &l_block_hash); // Convert argument to hash
-            l_block = (dap_chain_block_t*) dap_chain_get_atom_by_hash( l_chain, &l_block_hash, &l_block_size);
-            if ( l_block){
-                dap_chain_block_cache_t *l_block_cache = dap_chain_block_cs_cache_get_by_hash(l_blocks, &l_block_hash);
-                if ( l_block_cache ){
-                    dap_string_t * l_str_tmp = dap_string_new(NULL);
-                    char buf[50];
-                    time_t l_ts_reated = (time_t) l_block->hdr.ts_created;
-                     // Header
-                    dap_string_append_printf(l_str_tmp,"Block %s:\n", l_subcmd_str_arg);
-                    dap_string_append_printf(l_str_tmp, "\t\t\tversion: 0x%04X\n", l_block->hdr.version);
-                    dap_string_append_printf(l_str_tmp,"\t\t\tcell_id: 0x%016"DAP_UINT64_FORMAT_X"\n",l_block->hdr.cell_id.uint64);
-                    dap_string_append_printf(l_str_tmp,"\t\t\tchain_id: 0x%016"DAP_UINT64_FORMAT_X"\n",l_block->hdr.chain_id.uint64);
-                    ctime_r(&l_ts_reated, buf);
-                    dap_string_append_printf(l_str_tmp,"\t\t\tts_created: %s\n", buf);
-
-                    // Dump Metadata
-                    dap_string_append_printf(l_str_tmp,"\tMetadata. Count: %us\n",l_block->hdr.meta_count );
-                    for (uint32_t i=0; i < l_block_cache->meta_count; i++){
-                        dap_chain_block_meta_t * l_meta = l_block_cache->meta[i];
-                        switch (l_meta->hdr.type) {
-                            case DAP_CHAIN_BLOCK_META_GENESIS:{
-                                dap_string_append_printf(l_str_tmp, "\t\tGENESIS\n");
-                            }break;
-                            case DAP_CHAIN_BLOCK_META_PREV:{
-                                s_cli_meta_hash_print(l_str_tmp, "PREV", l_meta);
-                            }break;
-                            case DAP_CHAIN_BLOCK_META_ANCHOR:{
-                                s_cli_meta_hash_print(l_str_tmp, "ANCHOR", l_meta);
-                            }break;
-                            case DAP_CHAIN_BLOCK_META_LINK:{
-                                s_cli_meta_hash_print(l_str_tmp, "LINK", l_meta);
-                            }break;
-                            case DAP_CHAIN_BLOCK_META_NONCE:{
-                                s_cli_meta_hex_print(l_str_tmp,"NONCE", l_meta);
-                            }break;
-                            case DAP_CHAIN_BLOCK_META_NONCE2:{
-                                s_cli_meta_hex_print(l_str_tmp,"NONCE2", l_meta);
-                            }break;
-                            default:{
-                                char * l_data_hex = DAP_NEW_Z_SIZE(char,l_meta->hdr.data_size*2+3);
-                                dap_bin2hex(l_data_hex, l_meta->data, l_meta->hdr.data_size);
-                                dap_string_append_printf(l_str_tmp, "\t\t 0x%0X: 0x%s\n", i, l_data_hex );
-                                DAP_DELETE(l_data_hex);
-                            }
-                        }
-                    }
-                    dap_string_append_printf(l_str_tmp,"\t\tdatums:\tcount: %zu\n",l_block_cache->datum_count);
-                    for (uint32_t i=0; i < l_block_cache->datum_count ; i++){
-                        dap_chain_datum_t * l_datum = l_block_cache->datum[i];
-                        size_t l_datum_size =  dap_chain_datum_size(l_datum);
-                        dap_string_append_printf(l_str_tmp,"\t\t\tdatum:\tdatum_size: %zu\n",l_datum_size);
-                        if (l_datum_size < sizeof (l_datum->header) ){
-                            dap_string_append_printf(l_str_tmp,"\t\t\tERROR: datum size %zu is smaller than header size %zu \n",l_datum_size,
-                                                     sizeof (l_datum->header));
-                            break;
-                        }
-                        time_t l_datum_ts_create = (time_t) l_datum->header.ts_create;
-                        // Nested datums
-                        dap_string_append_printf(l_str_tmp,"\t\t\t\tversion:=0x%02X\n", l_datum->header.version_id);
-                        const char * l_datum_type_str="UNKNOWN";
-                        DAP_DATUM_TYPE_STR(l_datum->header.type_id, l_datum_type_str);
-                        dap_string_append_printf(l_str_tmp,"\t\t\t\ttype_id:=%s\n", l_datum_type_str);
-                        ctime_r(&l_datum_ts_create, buf);
-                        dap_string_append_printf(l_str_tmp,"\t\t\t\tts_create=%s\n", buf);
-                        dap_string_append_printf(l_str_tmp,"\t\t\t\tdata_size=%u\n", l_datum->header.data_size);
-                        dap_chain_datum_dump(l_str_tmp, l_datum, "hex");
-                    }
-                    // Signatures
-                    dap_string_append_printf(l_str_tmp,"\t\tsignatures:\tcount: %zu\n",l_block_cache->sign_count );
-                    for (uint32_t i=0; i < l_block_cache->sign_count ; i++){
-                        //dap_sign_t * l_sign =l_block_cache->sign[i];
-                        dap_sign_t * l_sign = dap_chain_block_sign_get(l_block_cache->block, l_block_cache->block_size, i);
-                        size_t l_sign_size = dap_sign_get_size(l_sign);
-                        dap_chain_addr_t l_addr = {0};
-                        dap_chain_hash_fast_t l_pkey_hash;
-                        dap_sign_get_pkey_hash(l_sign, &l_pkey_hash);
-                        dap_chain_addr_fill(&l_addr, l_sign->header.type, &l_pkey_hash, l_net->pub.id);
-                        char * l_pkey_hash_str = dap_chain_hash_fast_to_str_new(&l_pkey_hash);
-                        char * l_addr_str = dap_chain_addr_to_str(&l_addr);
-                        dap_string_append_printf(l_str_tmp,"\t\t\ttype:%s size: %zd pkey_hash: %s \n"
-                                                           "\t\t\t\taddr: %s \n", dap_sign_type_to_str( l_sign->header.type ),
-                                                                l_sign_size, l_pkey_hash_str, l_addr_str );
-                        DAP_DELETE( l_pkey_hash_str );
-                    }
-                    dap_cli_server_cmd_set_reply_text(a_str_reply, l_str_tmp->str);
-                    dap_string_free(l_str_tmp,false);
-                    ret=0;
-                }
-            }else {
-                dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't find block %s ", l_subcmd_str_arg);
-                ret=-10;
+			if(l_subcmd_str_arg){
+					dap_chain_hash_fast_from_str( l_subcmd_str_arg, &l_block_hash); // Convert argument to hash
+					l_block = (dap_chain_block_t*) dap_chain_get_atom_by_hash( l_chain, &l_block_hash, &l_block_size);
+					if ( l_block){
+						dap_chain_block_cache_t *l_block_cache = dap_chain_block_cs_cache_get_by_hash(l_blocks, &l_block_hash);
+						if ( l_block_cache ){
+							dap_string_t * l_str_tmp = dap_string_new(NULL);
+							char buf[50];
+							time_t l_ts_reated = (time_t) l_block->hdr.ts_created;
+							// Header
+							dap_string_append_printf(l_str_tmp,"Block %s:\n", l_subcmd_str_arg);
+							dap_string_append_printf(l_str_tmp, "\t\t\tversion: 0x%04X\n", l_block->hdr.version);
+							dap_string_append_printf(l_str_tmp,"\t\t\tcell_id: 0x%016"DAP_UINT64_FORMAT_X"\n",l_block->hdr.cell_id.uint64);
+							dap_string_append_printf(l_str_tmp,"\t\t\tchain_id: 0x%016"DAP_UINT64_FORMAT_X"\n",l_block->hdr.chain_id.uint64);
+							ctime_r(&l_ts_reated, buf);
+							dap_string_append_printf(l_str_tmp,"\t\t\tts_created: %s\n", buf);
+		
+							// Dump Metadata
+							dap_string_append_printf(l_str_tmp,"\tMetadata. Count: %us\n",l_block->hdr.meta_count );
+							for (uint32_t i=0; i < l_block_cache->meta_count; i++){
+								dap_chain_block_meta_t * l_meta = l_block_cache->meta[i];
+								switch (l_meta->hdr.type) {
+									case DAP_CHAIN_BLOCK_META_GENESIS:{
+										dap_string_append_printf(l_str_tmp, "\t\tGENESIS\n");
+									}break;
+									case DAP_CHAIN_BLOCK_META_PREV:{
+										s_cli_meta_hash_print(l_str_tmp, "PREV", l_meta);
+									}break;
+									case DAP_CHAIN_BLOCK_META_ANCHOR:{
+										s_cli_meta_hash_print(l_str_tmp, "ANCHOR", l_meta);
+									}break;
+									case DAP_CHAIN_BLOCK_META_LINK:{
+										s_cli_meta_hash_print(l_str_tmp, "LINK", l_meta);
+									}break;
+									case DAP_CHAIN_BLOCK_META_NONCE:{
+										s_cli_meta_hex_print(l_str_tmp,"NONCE", l_meta);
+									}break;
+									case DAP_CHAIN_BLOCK_META_NONCE2:{
+										s_cli_meta_hex_print(l_str_tmp,"NONCE2", l_meta);
+									}break;
+									default:{
+										char * l_data_hex = DAP_NEW_Z_SIZE(char,l_meta->hdr.data_size*2+3);
+										dap_bin2hex(l_data_hex, l_meta->data, l_meta->hdr.data_size);
+										dap_string_append_printf(l_str_tmp, "\t\t 0x%0X: 0x%s\n", i, l_data_hex );
+										DAP_DELETE(l_data_hex);
+									}
+								}
+							}
+							dap_string_append_printf(l_str_tmp,"\t\tdatums:\tcount: %zu\n",l_block_cache->datum_count);
+							for (uint32_t i=0; i < l_block_cache->datum_count ; i++){
+								dap_chain_datum_t * l_datum = l_block_cache->datum[i];
+								size_t l_datum_size =  dap_chain_datum_size(l_datum);
+								dap_string_append_printf(l_str_tmp,"\t\t\tdatum:\tdatum_size: %zu\n",l_datum_size);
+								if (l_datum_size < sizeof (l_datum->header) ){
+									dap_string_append_printf(l_str_tmp,"\t\t\tERROR: datum size %zu is smaller than header size %zu \n",l_datum_size,
+															sizeof (l_datum->header));
+									break;
+								}
+								time_t l_datum_ts_create = (time_t) l_datum->header.ts_create;
+								// Nested datums
+								dap_string_append_printf(l_str_tmp,"\t\t\t\tversion:=0x%02X\n", l_datum->header.version_id);
+								const char * l_datum_type_str="UNKNOWN";
+								DAP_DATUM_TYPE_STR(l_datum->header.type_id, l_datum_type_str);
+								dap_string_append_printf(l_str_tmp,"\t\t\t\ttype_id:=%s\n", l_datum_type_str);
+								ctime_r(&l_datum_ts_create, buf);
+								dap_string_append_printf(l_str_tmp,"\t\t\t\tts_create=%s\n", buf);
+								dap_string_append_printf(l_str_tmp,"\t\t\t\tdata_size=%u\n", l_datum->header.data_size);
+								dap_chain_datum_dump(l_str_tmp, l_datum, "hex");
+							}
+							// Signatures
+							dap_string_append_printf(l_str_tmp,"\t\tsignatures:\tcount: %zu\n",l_block_cache->sign_count );
+							for (uint32_t i=0; i < l_block_cache->sign_count ; i++){
+								//dap_sign_t * l_sign =l_block_cache->sign[i];
+								dap_sign_t * l_sign = dap_chain_block_sign_get(l_block_cache->block, l_block_cache->block_size, i);
+								size_t l_sign_size = dap_sign_get_size(l_sign);
+								dap_chain_addr_t l_addr = {0};
+								dap_chain_hash_fast_t l_pkey_hash;
+								dap_sign_get_pkey_hash(l_sign, &l_pkey_hash);
+								dap_chain_addr_fill(&l_addr, l_sign->header.type, &l_pkey_hash, l_net->pub.id);
+								char * l_pkey_hash_str = dap_chain_hash_fast_to_str_new(&l_pkey_hash);
+								char * l_addr_str = dap_chain_addr_to_str(&l_addr);
+								dap_string_append_printf(l_str_tmp,"\t\t\ttype:%s size: %zd pkey_hash: %s \n"
+																"\t\t\t\taddr: %s \n", dap_sign_type_to_str( l_sign->header.type ),
+																		l_sign_size, l_pkey_hash_str, l_addr_str );
+								DAP_DELETE( l_pkey_hash_str );
+							}
+							dap_cli_server_cmd_set_reply_text(a_str_reply, l_str_tmp->str);
+							dap_string_free(l_str_tmp,false);
+							ret=0;
+						}
+					}else {
+						dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't find block %s ", l_subcmd_str_arg);
+						ret=-10;
+					}
+			}
+			else
+            {
+                dap_cli_server_cmd_set_reply_text(a_str_reply, "Enter block hash ");
+                ret=-13;
             }
         }break;
         case SUBCMD_LIST:{