diff --git a/modules/common/dap_chain_datum_decree.c b/modules/common/dap_chain_datum_decree.c
index edfc1b7612f6da3084610f56e45e0e4ab7b6c520..e3af6de341b1d54203474a8b850abf4c0d41a098 100644
--- a/modules/common/dap_chain_datum_decree.c
+++ b/modules/common/dap_chain_datum_decree.c
@@ -105,7 +105,7 @@ int dap_chain_datum_decree_get_fee_addr(dap_chain_datum_decree_t *a_decree, dap_
     return 1;
 }
 
-dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree, uint256_t *a_owners_num)
+dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree, uint16_t *a_owners_num)
 {
     if(!a_decree || !a_owners_num){
         log_it(L_WARNING,"Wrong arguments");
@@ -140,11 +140,12 @@ dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree
         }
         l_tsd_offset += l_tsd_size;
     }
-    *a_owners_num = GET_256_FROM_64(l_owners_num);
+    if (a_owners_num)
+        *a_owners_num = l_owners_num;
     return l_key_list;
 }
 
-int dap_chain_datum_decree_get_min_owners(dap_chain_datum_decree_t *a_decree, uint256_t *a_min_owners_num)
+int dap_chain_datum_decree_get_min_owners(dap_chain_datum_decree_t *a_decree, uint16_t *a_min_owners_num)
 {
     if(!a_decree || !a_min_owners_num){
         log_it(L_WARNING,"Wrong arguments");
@@ -165,7 +166,9 @@ int dap_chain_datum_decree_get_min_owners(dap_chain_datum_decree_t *a_decree, ui
                 log_it(L_WARNING,"Wrong fee tsd data size.");
                 return -1;
             }
-            *a_min_owners_num = dap_tsd_get_scalar(l_tsd, uint256_t);
+            uint256_t l_min_owners_num = dap_tsd_get_scalar(l_tsd, uint256_t);
+            if (a_min_owners_num)
+                *a_min_owners_num = dap_chain_uint256_to(l_min_owners_num);
             return 0;
         }
         l_tsd_offset += l_tsd_size;
diff --git a/modules/common/include/dap_chain_datum_decree.h b/modules/common/include/dap_chain_datum_decree.h
index bc8096a855a14857ac1e138de78bd0c841db8c79..a2e9ab414eacb02fde712dfff0fe0e1ed9419e0f 100644
--- a/modules/common/include/dap_chain_datum_decree.h
+++ b/modules/common/include/dap_chain_datum_decree.h
@@ -76,7 +76,6 @@ DAP_STATIC_INLINE size_t dap_chain_datum_decree_get_size(dap_chain_datum_decree_
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_FEE                                 0x0102
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_OWNER                               0x0103
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_MIN_OWNER                           0x0104
-#define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_TON_SIGNERS_MIN                     0x0105
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_FEE_WALLET                          0x0106
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_STAKE_TX_HASH                       0x0107
 #define DAP_CHAIN_DATUM_DECREE_TSD_TYPE_STAKE_VALUE                         0x0108
@@ -116,7 +115,7 @@ int dap_chain_datum_decree_get_fee_addr(dap_chain_datum_decree_t *a_decree, dap_
  * @param a_owners_num pointer to total number of owners buffer
  * @return dap_list_t with owners keys in dap_pkey_t format
  */
-dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree, uint256_t *a_owners_num);
+dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree, uint16_t *a_owners_num);
 
 /**
  * @brief dap_chain_datum_decree_get_min_owners get minimum number of owners
@@ -124,7 +123,7 @@ dap_list_t *dap_chain_datum_decree_get_owners(dap_chain_datum_decree_t *a_decree
  * @param a_owners_num pointer to minimum number of owners buffer
  * @return result code. 0 - success
  */
-int dap_chain_datum_decree_get_min_owners(dap_chain_datum_decree_t *a_decree, uint256_t *a_min_owners_num);
+int dap_chain_datum_decree_get_min_owners(dap_chain_datum_decree_t *a_decree, uint16_t *a_min_owners_num);
 
 /**
  * @brief dap_chain_datum_decree_get_tx_hash get stake tx hash
diff --git a/modules/net/dap_chain_net_anchor.c b/modules/net/dap_chain_net_anchor.c
index 83002e1ba255429feba157ce8920cdd9097dadd7..9812fbdbc7db586ef18df764a2f6f3ba004db1af 100644
--- a/modules/net/dap_chain_net_anchor.c
+++ b/modules/net/dap_chain_net_anchor.c
@@ -183,7 +183,6 @@ int dap_chain_net_anchor_load(dap_chain_datum_anchor_t * a_anchor, dap_chain_t *
         return ret_val;
     }
 
-    dap_chain_datum_decree_t * l_decree = NULL;
     dap_chain_hash_fast_t l_hash = {0};
     if ((ret_val = dap_chain_datum_anchor_get_hash_from_data(a_anchor, &l_hash)) != 0)
     {
@@ -191,22 +190,7 @@ int dap_chain_net_anchor_load(dap_chain_datum_anchor_t * a_anchor, dap_chain_t *
         return -109;
     }
 
-    bool l_is_applied = false;
-    l_decree = dap_chain_net_decree_get_by_hash(l_hash, &l_is_applied);
-    if (!l_decree)
-    {
-        log_it(L_WARNING,"Decree is not found.");
-        return -110;
-    }
-
-    if (l_is_applied)
-    {
-        log_it(L_WARNING,"Decree already applyed.");
-        return -111;
-    }
-
-
-    if((ret_val = dap_chain_net_decree_apply(l_decree, a_chain))!=0)
+    if((ret_val = dap_chain_net_decree_apply(&l_hash, NULL, a_chain))!=0)
     {
         log_it(L_WARNING,"Decree applying failed");
     }
diff --git a/modules/net/dap_chain_net_decree.c b/modules/net/dap_chain_net_decree.c
index fd270ab2726630499259b048ee5b5242469c686d..7ed6a3e767371c3a1801a7d890f0b91877b876e1 100644
--- a/modules/net/dap_chain_net_decree.c
+++ b/modules/net/dap_chain_net_decree.c
@@ -91,8 +91,8 @@ int dap_chain_net_decree_init(dap_chain_net_t *a_net)
         return -2;
     }
 
-    l_decree->min_num_of_owners = GET_256_FROM_64((uint64_t)l_count_verify);
-    l_decree->num_of_owners = GET_256_FROM_64((uint64_t)l_auth_certs_count);
+    l_decree->min_num_of_owners = l_count_verify;
+    l_decree->num_of_owners = l_auth_certs_count;
     l_decree->pkeys = l_net_keys;
 
     a_net->pub.decree = l_decree;
@@ -214,17 +214,9 @@ int dap_chain_net_decree_verify(dap_chain_datum_decree_t *a_decree, dap_chain_ne
     size_t l_num_of_unique_signs = 0;
     dap_sign_t **l_unique_signs = dap_sign_get_unique_signs(l_signs_arr, l_signs_arr_size, &l_num_of_unique_signs);
 
-    if (l_num_of_unique_signs != l_signs_count)
-    {
-        log_it(L_WARNING,"Signatures contain duplicate signs.");
-        return -105;
-    }
-
-    uint256_t l_min_signs = a_net->pub.decree->min_num_of_owners;
-    uint256_t l_num_of_valid_signs256 = GET_256_FROM_64((uint64_t)l_num_of_unique_signs);
-    if (compare256(l_num_of_valid_signs256, l_min_signs) < 0)
-    {
-        log_it(L_WARNING,"Not enough unique signatures");
+    uint16_t l_min_signs = a_net->pub.decree->min_num_of_owners;
+    if (l_num_of_unique_signs < l_min_signs) {
+        log_it(L_WARNING, "Not enough unique signatures, get %zu from %hu", l_num_of_unique_signs, l_min_signs);
         return -106;
     }
 
@@ -253,11 +245,8 @@ int dap_chain_net_decree_verify(dap_chain_datum_decree_t *a_decree, dap_chain_ne
     DAP_DELETE(l_signs_arr);
     DAP_DELETE(l_unique_signs);
 
-    l_min_signs = a_net->pub.decree->min_num_of_owners;
-    l_num_of_valid_signs256 = GET_256_FROM_64((uint64_t)l_signs_verify_counter);
-    if (compare256(l_num_of_valid_signs256, l_min_signs) < 0)
-    {
-        log_it(L_WARNING,"Not enough valid signatures");
+    if (l_signs_verify_counter < l_min_signs) {
+        log_it(L_WARNING,"Not enough valid signatures, get %hu from %hu", l_signs_verify_counter, l_min_signs);
         return -106;
     }
 
@@ -271,12 +260,12 @@ int dap_chain_net_decree_verify(dap_chain_datum_decree_t *a_decree, dap_chain_ne
     return 0;
 }
 
-int dap_chain_net_decree_apply(dap_chain_datum_decree_t * a_decree, dap_chain_t *a_chain)
+int dap_chain_net_decree_apply(dap_hash_fast_t *a_decree_hash, dap_chain_datum_decree_t *a_decree, dap_chain_t *a_chain)
 {
     int ret_val = 0;
     dap_chain_net_t *l_net = NULL;
 
-    if (!a_decree || !a_chain)
+    if (!a_decree_hash || !a_chain)
     {
         log_it(L_ERROR,"Invalid arguments.");
         return -107;
@@ -290,31 +279,34 @@ int dap_chain_net_decree_apply(dap_chain_datum_decree_t * a_decree, dap_chain_t
         return -108;
     }
 
-    dap_hash_fast_t l_hash = {0};
-    size_t l_data_size = dap_chain_datum_decree_get_size(a_decree);
-
-    if ((ret_val = dap_chain_net_decree_verify(a_decree, l_net, l_data_size, &l_hash)) != DAP_DECREE_IS_PRESENT)
-        return ret_val;
-
-    // Process decree
-    switch(a_decree->header.type){
-        case DAP_CHAIN_DATUM_DECREE_TYPE_COMMON:{
-            ret_val = s_common_decree_handler(a_decree, l_net, a_chain, true);
-            break;
+    struct decree_hh *l_decree_hh = NULL;
+    if (!a_decree) {
+        HASH_FIND(hh, s_decree_hh, a_decree_hash, sizeof(dap_hash_fast_t), l_decree_hh);
+        if (!l_decree_hh) {
+            log_it(L_WARNING,"Decree is not found.");
+            return -110;
         }
-        case DAP_CHAIN_DATUM_DECREE_TYPE_SERVICE:{
-            ret_val = s_service_decree_handler(a_decree, a_chain, true);
+        if (l_decree_hh->is_applied) {
+            log_it(L_WARNING,"Decree already applyed.");
+            return -111;
         }
-        default:
-        log_it(L_WARNING,"Decree type is undefined!");
-        ret_val = -100;
+    } else {
+        l_decree_hh = DAP_NEW_Z(struct decree_hh);
+        l_decree_hh->decree = DAP_DUP_SIZE(a_decree, dap_chain_datum_decree_get_size(a_decree));
+        l_decree_hh->key = *a_decree_hash;
+        HASH_ADD(hh, s_decree_hh, key, sizeof(dap_hash_fast_t), l_decree_hh);
     }
 
-    if (!ret_val) {
-        struct decree_hh *l_decree_hh = NULL;
-        HASH_FIND(hh, s_decree_hh, &l_hash, sizeof(dap_hash_fast_t), l_decree_hh);
-        if (l_decree_hh)
-            l_decree_hh->is_applied = true;
+    // Process decree
+    switch(a_decree->header.type) {
+    case DAP_CHAIN_DATUM_DECREE_TYPE_COMMON:
+        ret_val = s_common_decree_handler(l_decree_hh->decree, l_net, a_chain, true);
+        break;
+    case DAP_CHAIN_DATUM_DECREE_TYPE_SERVICE:
+        ret_val = s_service_decree_handler(l_decree_hh->decree, a_chain, true);
+    default:
+        log_it(L_WARNING,"Decree type is undefined!");
+        ret_val = -100;
     }
 
     return ret_val;
@@ -344,31 +336,21 @@ int dap_chain_net_decree_load(dap_chain_datum_decree_t * a_decree, dap_chain_t *
         log_it(L_ERROR,"Decree verification failed!");
         return ret_val;
     }
-    struct decree_hh *l_decree_hh = DAP_NEW_Z(struct decree_hh);
-    l_decree_hh->decree = DAP_DUP_SIZE(a_decree, l_data_size);;
-    l_decree_hh->key = l_hash;
-    l_decree_hh->is_applied = false;
 
-    if (a_decree->header.common_decree_params.chain_id.uint64 == a_chain->id.uint64)
-    {
-        ret_val = dap_chain_net_decree_apply(a_decree, a_chain);
+    if (a_decree->header.common_decree_params.chain_id.uint64 == a_chain->id.uint64) {
+        ret_val = dap_chain_net_decree_apply(&l_hash, a_decree, a_chain);
         if (ret_val)
             log_it(L_ERROR,"Decree applying failed!");
-        else
-            l_decree_hh->is_applied = true;
     }
 
-    HASH_ADD(hh, s_decree_hh, key, sizeof(dap_hash_fast_t), l_decree_hh);
-
     return ret_val;
 }
 
 dap_chain_datum_decree_t * dap_chain_net_decree_get_by_hash(dap_hash_fast_t a_hash, bool *is_applied)
 {
-    dap_hash_fast_t l_hash = a_hash;
     struct decree_hh* l_decree_hh = NULL;
 
-    HASH_FIND(hh, s_decree_hh, &l_hash, sizeof(dap_hash_fast_t), l_decree_hh);
+    HASH_FIND(hh, s_decree_hh, &a_hash, sizeof(dap_hash_fast_t), l_decree_hh);
     if (!l_decree_hh)
         return NULL;
 
@@ -400,7 +382,7 @@ static bool s_verify_pkey (dap_sign_t *a_sign, dap_chain_net_t *a_net)
 static int s_common_decree_handler(dap_chain_datum_decree_t * a_decree, dap_chain_net_t *a_net, dap_chain_t *a_chain, bool a_apply)
 {
     uint256_t l_uint256_buffer;
-
+    uint16_t l_uint16_buffer;
     dap_chain_addr_t l_addr = {}; //????????
     dap_hash_fast_t l_hash = {};
     dap_chain_node_addr_t l_node_addr = {};
@@ -444,7 +426,7 @@ static int s_common_decree_handler(dap_chain_datum_decree_t * a_decree, dap_chai
                 }
             break;
         case DAP_CHAIN_DATUM_DECREE_COMMON_SUBTYPE_OWNERS:
-            l_owners_list = dap_chain_datum_decree_get_owners(a_decree, &l_uint256_buffer);
+            l_owners_list = dap_chain_datum_decree_get_owners(a_decree, &l_uint16_buffer);
             if (!l_owners_list){
                 log_it(L_WARNING,"Can't get ownners from decree.");
                 return -104;
@@ -453,19 +435,19 @@ static int s_common_decree_handler(dap_chain_datum_decree_t * a_decree, dap_chai
             if (!a_apply)
                 break;
 
-            l_net->pub.decree->num_of_owners = l_uint256_buffer;
+            l_net->pub.decree->num_of_owners = l_uint16_buffer;
             dap_list_free_full(l_net->pub.decree->pkeys, NULL);
 
             l_net->pub.decree->pkeys = l_owners_list;
             break;
         case DAP_CHAIN_DATUM_DECREE_COMMON_SUBTYPE_OWNERS_MIN:
-            if (dap_chain_datum_decree_get_min_owners(a_decree, &l_uint256_buffer)){
+            if (dap_chain_datum_decree_get_min_owners(a_decree, &l_uint16_buffer)){
                 log_it(L_WARNING,"Can't get min number of ownners from decree.");
                 return -105;
             }
             if (!a_apply)
                 break;
-            l_net->pub.decree->min_num_of_owners = l_uint256_buffer;
+            l_net->pub.decree->min_num_of_owners = l_uint16_buffer;
             break;
         case DAP_CHAIN_DATUM_DECREE_COMMON_SUBTYPE_TON_SIGNERS_MIN:
             if (!a_apply)
@@ -515,6 +497,10 @@ static int s_common_decree_handler(dap_chain_datum_decree_t * a_decree, dap_chai
                 log_it(L_WARNING,"Can't get min stake value from decree.");
                 return -105;
             }
+            if (!a_chain->callback_set_min_validators_count) {
+                log_it(L_WARNING, "Can't apply this decree to specified chain");
+                return -115;
+            }
             if (!a_apply)
                 break;
             a_chain->callback_set_min_validators_count(a_chain, (uint16_t)dap_chain_uint256_to(l_uint256_buffer));
diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c
index 18e74e08ee52b6ee42c070797228cdf38323d468..4f5651f9fecc4135564ab52acb98948ac6db05dc 100644
--- a/modules/net/dap_chain_node_cli.c
+++ b/modules/net/dap_chain_node_cli.c
@@ -326,9 +326,7 @@ int dap_chain_node_cli_init(dap_config_t * g_config)
             "\t -fee <value>: sets fee for tx in net\n"
             "\t -to_addr <wallet_addr>: sets wallet addr for network fee\n"
             "\t -new_certs <certs_list>: sets new owners set for net\n"
-            "\t -signs_verify <value>: sets minimum number of owners needed to sign decree\n"
-            "\t -ton_signs_verify <value>: sets minimum number of TON signers");
-
+            "\t -signs_verify <value>: sets minimum number of owners needed to sign decree\n");
 
     // Exit - always last!
     dap_cli_server_cmd_add ("exit", com_exit, "Stop application and exit",
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index f5a76a287a21ddd1e0e6a1535ed58c5f1b617241..b828ede4a7f1704d6fe93b4be9661c0a0bb94216 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -1394,7 +1394,7 @@ int cmd_decree(int a_argc, char **a_argv, char ** a_str_reply)
 {
     enum { CMD_NONE=0, CMD_CREATE, CMD_SIGN, CMD_ANCHOR };
     enum { TYPE_NONE=0, TYPE_COMMON, TYPE_SERVICE};
-    enum { SUBTYPE_NONE=0, SUBTYPE_FEE, SUBTYPE_OWNERS, SUBTYPE_MIN_OWNERS, SUBTYPE_TON_MIN_SIGNS};
+    enum { SUBTYPE_NONE=0, SUBTYPE_FEE, SUBTYPE_OWNERS, SUBTYPE_MIN_OWNERS};
     int arg_index = 1;
     const char *l_net_str = NULL;
     const char * l_chain_str = NULL;
@@ -1553,11 +1553,9 @@ int cmd_decree(int a_argc, char **a_argv, char ** a_str_reply)
                 l_subtype = SUBTYPE_OWNERS;
                 dap_cert_parse_str_list(l_param_value_str, &l_new_certs, &l_new_certs_count);
 
-                dap_chain_net_t *a_net = dap_chain_net_by_name(l_net_str);
-                uint256_t l_min_signs = a_net->pub.decree->min_num_of_owners;
-                uint256_t l_num_of_valid_signs256 = GET_256_FROM_64((uint64_t)l_new_certs_count);
-                if (compare256(l_num_of_valid_signs256, l_min_signs) < 0)
-                {
+                dap_chain_net_t *l_net = dap_chain_net_by_name(l_net_str);
+                uint16_t l_min_signs = l_net->pub.decree->min_num_of_owners;
+                if (l_new_certs_count < l_min_signs) {
                     log_it(L_WARNING,"Number of new certificates is less than minimum owner number.");
                     return -106;
                 }
@@ -1584,15 +1582,17 @@ int cmd_decree(int a_argc, char **a_argv, char ** a_str_reply)
             }else if (dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-signs_verify", &l_param_value_str)){
                 l_subtype = SUBTYPE_MIN_OWNERS;
                 uint256_t l_new_num_of_owners = dap_cvt_str_to_uint256(l_param_value_str);
-
-                dap_chain_net_t *a_net = dap_chain_net_by_name(l_net_str);
-                uint256_t l_owners = a_net->pub.decree->num_of_owners;
-                uint256_t l_num_of_valid_signs256 = GET_256_FROM_64((uint64_t)l_new_certs_count);
-                if (compare256(l_num_of_valid_signs256, l_owners) > 0)
-                {
+                if (IS_ZERO_256(l_new_num_of_owners)) {
+                    log_it(L_WARNING, "The minimum number of owners can't be zero");
+                    dap_list_free_full(l_tsd_list, NULL);
+                    return -112;
+                }
+                dap_chain_net_t *l_net = dap_chain_net_by_name(l_net_str);
+                uint256_t l_owners = GET_256_FROM_64(l_net->pub.decree->num_of_owners);
+                if (compare256(l_new_num_of_owners, l_owners) > 0) {
                     log_it(L_WARNING,"The minimum number of owners is greater than the total number of owners.");
                     dap_list_free_full(l_tsd_list, NULL);
-                    return -107;
+                    return -110;
                 }
 
                 l_total_tsd_size = sizeof(dap_tsd_t) + sizeof(uint256_t);
@@ -1601,18 +1601,9 @@ int cmd_decree(int a_argc, char **a_argv, char ** a_str_reply)
                 l_tsd->size = sizeof(uint256_t);
                 *(uint256_t*)(l_tsd->data) = l_new_num_of_owners;
                 l_tsd_list = dap_list_append(l_tsd_list, l_tsd);
-            }else if (dap_cli_server_cmd_find_option_val(a_argv, arg_index, a_argc, "-ton_signs_verify", &l_param_value_str)){
-                l_subtype = SUBTYPE_TON_MIN_SIGNS;
-                uint256_t l_new_num_of_owners = dap_cvt_str_to_uint256(l_param_value_str);
-                l_total_tsd_size = sizeof(dap_tsd_t) + sizeof(uint256_t);
-                l_tsd = DAP_NEW_Z_SIZE(dap_tsd_t, l_total_tsd_size);
-                l_tsd->type = DAP_CHAIN_DATUM_DECREE_TSD_TYPE_TON_SIGNERS_MIN;
-                l_tsd->size = sizeof(uint256_t);
-                *(uint256_t*)(l_tsd->data) = l_new_num_of_owners;
-                l_tsd_list = dap_list_append(l_tsd_list, l_tsd);
             }else{
                 dap_cli_server_cmd_set_reply_text(a_str_reply, "Decree subtype fail.");
-                return -107;
+                return -111;
             }
 
             l_datum_decree = DAP_NEW_Z_SIZE(dap_chain_datum_decree_t, sizeof(dap_chain_datum_decree_t) + l_total_tsd_size);
diff --git a/modules/net/include/dap_chain_net_decree.h b/modules/net/include/dap_chain_net_decree.h
index b9a2d4a72ea6b9c1963356172dfd86daf5c4b56b..a62ca0d07ae70f7cff4efdc2066d1e5b918879c5 100644
--- a/modules/net/include/dap_chain_net_decree.h
+++ b/modules/net/include/dap_chain_net_decree.h
@@ -27,8 +27,8 @@
 
 typedef struct decree_params {
     dap_list_t *pkeys;
-    uint256_t   num_of_owners;
-    uint256_t   min_num_of_owners;
+    uint16_t num_of_owners;
+    uint16_t min_num_of_owners;
     dap_chain_addr_t *fee_addr;
 }   dap_chain_net_decree_t;
 
@@ -37,7 +37,7 @@ typedef struct decree_params {
 int dap_chain_net_decree_init(dap_chain_net_t *a_net);
 int dap_chain_net_decree_deinit(dap_chain_net_t *a_net);
 
-int dap_chain_net_decree_apply(dap_chain_datum_decree_t * a_decree, dap_chain_t *a_chain);
+int dap_chain_net_decree_apply(dap_hash_fast_t *a_decree_hash, dap_chain_datum_decree_t * a_decree, dap_chain_t *a_chain);
 int dap_chain_net_decree_verify(dap_chain_datum_decree_t *a_decree, dap_chain_net_t *a_net, size_t a_data_size, dap_hash_fast_t *a_decree_hash);
 int dap_chain_net_decree_load(dap_chain_datum_decree_t * a_decree, dap_chain_t *a_chain);