diff --git a/modules/chain/dap_chain_ledger.c b/modules/chain/dap_chain_ledger.c
index ae129db15a15dcb2a36cb964d5f30e6ea488be92..aa089177b0d1d6a5e66d58150b79b62907555ee4 100644
--- a/modules/chain/dap_chain_ledger.c
+++ b/modules/chain/dap_chain_ledger.c
@@ -140,9 +140,9 @@ typedef struct dap_chain_ledger_tx_bound {
         dap_chain_tx_in_cond_t *tx_cur_in_cond;
     } in;
     union {
-        dap_chain_tx_out_t *tx_prev_out;
+        dap_chain_tx_out_old_t *tx_prev_out;
         // 256
-        dap_chain_256_tx_out_t *tx_prev_out_256;
+        dap_chain_tx_out_t *tx_prev_out_256;
         dap_chain_tx_out_ext_t *tx_prev_out_ext_256;
         dap_chain_tx_out_cond_t *tx_prev_out_cond_256;
     } out;
@@ -1840,11 +1840,11 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
         if (l_cond_type == TX_ITEM_TYPE_IN) {
             dap_chain_tx_item_type_t l_type = *(uint8_t *)l_tx_prev_out;
             switch (l_type) {
-            case TX_ITEM_TYPE_OUT:
+            case TX_ITEM_TYPE_OUT_OLD:
                 bound_item->out.tx_prev_out = l_tx_prev_out;
                 memcpy(&l_tx_in_from, &bound_item->out.tx_prev_out->addr,sizeof (bound_item->out.tx_prev_out->addr));
                 break;
-            case TX_ITEM_TYPE_OUT_256: // 256
+            case TX_ITEM_TYPE_OUT: // 256
                 bound_item->out.tx_prev_out_256 = l_tx_prev_out;
                 memcpy(&l_tx_in_from, &bound_item->out.tx_prev_out_256->addr,sizeof (bound_item->out.tx_prev_out_256->addr));
                 break;
@@ -1874,9 +1874,9 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
 
             uint8_t *l_prev_out_addr_key = NULL;
             switch (l_type) {
-                case TX_ITEM_TYPE_OUT_256:
-                    l_prev_out_addr_key = bound_item->out.tx_prev_out_256->addr.data.key; break;
                 case TX_ITEM_TYPE_OUT:
+                    l_prev_out_addr_key = bound_item->out.tx_prev_out_256->addr.data.key; break;
+                case TX_ITEM_TYPE_OUT_OLD:
                     l_prev_out_addr_key = bound_item->out.tx_prev_out->addr.data.key; break;
                 case TX_ITEM_TYPE_OUT_EXT:
                     l_prev_out_addr_key = bound_item->out.tx_prev_out_ext_256->addr.data.key; break;
@@ -1890,9 +1890,9 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
             }
 
             switch (l_type) {
-                case TX_ITEM_TYPE_OUT_256: // 256
+                case TX_ITEM_TYPE_OUT: // 256
                     l_value = bound_item->out.tx_prev_out_256->header.value; break;
-                case TX_ITEM_TYPE_OUT:
+                case TX_ITEM_TYPE_OUT_OLD:
                     l_value = dap_chain_uint256_from(bound_item->out.tx_prev_out->header.value); break;
                 case TX_ITEM_TYPE_OUT_EXT: // 256
                     l_value = bound_item->out.tx_prev_out_ext_256->header.value;
@@ -1901,7 +1901,7 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
                 default: break;
             }
         } else { // TX_ITEM_TYPE_IN_COND
-            if(*(uint8_t *)l_tx_prev_out != TX_ITEM_TYPE_OUT_256_COND) {
+            if(*(uint8_t *)l_tx_prev_out != TX_ITEM_TYPE_OUT_COND) {
                 l_err_num = -8;
                 break;
             }
@@ -2029,7 +2029,7 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
     }
 
     dap_list_t *l_list_tx_out = NULL;
-    bool emission_flag = !l_is_first_transaction || (l_is_first_transaction && l_ledger_priv->check_token_emission);
+    bool l_emission_flag = !l_is_first_transaction || (l_is_first_transaction && l_ledger_priv->check_token_emission);
     // find 'out' items
     dap_list_t *l_list_out = dap_chain_datum_tx_items_get((dap_chain_datum_tx_t*) a_tx, TX_ITEM_TYPE_OUT_ALL, NULL);
     uint256_t l_value = {};
@@ -2037,25 +2037,25 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
         dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data;
         dap_chain_addr_t l_tx_out_to={0};
         switch (l_type) {
-        case TX_ITEM_TYPE_OUT: {
-            dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_tmp->data;
+        case TX_ITEM_TYPE_OUT_OLD: {
+            dap_chain_tx_out_old_t *l_tx_out = (dap_chain_tx_out_old_t *)l_list_tmp->data;
             if (l_multichannel) { // token ticker is mandatory for multichannel transactions
                 l_err_num = -16;
                 break;
             }
-            if (emission_flag) {
+            if (l_emission_flag) {
                  l_value = dap_chain_uint256_from(l_tx_out->header.value);
             }
             memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to));
             l_list_tx_out = dap_list_append(l_list_tx_out, l_tx_out);
         } break;
-        case TX_ITEM_TYPE_OUT_256: { // 256
-            dap_chain_256_tx_out_t *l_tx_out = (dap_chain_256_tx_out_t *)l_list_tmp->data;
+        case TX_ITEM_TYPE_OUT: { // 256
+            dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_tmp->data;
             if (l_multichannel) { // token ticker is mandatory for multichannel transactions
                 l_err_num = -16;
                 break;
             }
-            if (emission_flag) {
+            if (l_emission_flag) {
                  l_value = l_tx_out->header.value;
             }
             memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to));
@@ -2067,16 +2067,16 @@ int dap_chain_ledger_tx_cache_check(dap_ledger_t *a_ledger, dap_chain_datum_tx_t
                 l_err_num = -16;
                 break;
             }
-            if (emission_flag) {
+            if (l_emission_flag) {
                  l_value = l_tx_out->header.value;
                  l_token = l_tx_out->token;
             }
             memcpy(&l_tx_out_to , &l_tx_out->addr, sizeof (l_tx_out_to));
             l_list_tx_out = dap_list_append(l_list_tx_out, l_tx_out);
         } break;
-        case TX_ITEM_TYPE_OUT_256_COND: {
+        case TX_ITEM_TYPE_OUT_COND: {
             dap_chain_tx_out_cond_t *l_tx_out = (dap_chain_tx_out_cond_t *)l_list_tmp->data;
-            if (emission_flag) {
+            if (l_emission_flag) {
                 l_value = l_tx_out->header.value;
             }
             if (l_multichannel) { // out_cond have no field .token
@@ -2372,8 +2372,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
             void *l_item_out = *(void **)&bound_item->out;
             dap_chain_tx_item_type_t l_out_type = *(uint8_t *)l_item_out;
             switch (l_out_type) {
-                case TX_ITEM_TYPE_OUT_256: l_addr = &bound_item->out.tx_prev_out_256->addr; break;
-                case TX_ITEM_TYPE_OUT: l_addr = &bound_item->out.tx_prev_out->addr; break;
+                case TX_ITEM_TYPE_OUT: l_addr = &bound_item->out.tx_prev_out_256->addr; break;
+                case TX_ITEM_TYPE_OUT_OLD: l_addr = &bound_item->out.tx_prev_out->addr; break;
                 case TX_ITEM_TYPE_OUT_EXT: l_addr = &bound_item->out.tx_prev_out_ext_256->addr; break;
                 default:
                     log_it(L_DEBUG, "Unknown item type %d", l_out_type);
@@ -2386,8 +2386,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
             pthread_rwlock_unlock(&PVT(a_ledger)->balance_accounts_rwlock);
             if (wallet_balance) {
                 switch (l_out_type) {
-                    case TX_ITEM_TYPE_OUT_256: l_value = bound_item->out.tx_prev_out_256->header.value; break;
-                    case TX_ITEM_TYPE_OUT: l_value = GET_256_FROM_64(bound_item->out.tx_prev_out->header.value); break;
+                    case TX_ITEM_TYPE_OUT: l_value = bound_item->out.tx_prev_out_256->header.value; break;
+                    case TX_ITEM_TYPE_OUT_OLD: l_value = GET_256_FROM_64(bound_item->out.tx_prev_out->header.value); break;
                     case TX_ITEM_TYPE_OUT_EXT: l_value = bound_item->out.tx_prev_out_ext_256->header.value; break;
                     default:
                         log_it(L_DEBUG, "Unknown item type %d", l_out_type);
@@ -2478,7 +2478,7 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
     //Update balance : raise
     for (dap_list_t *l_tx_out = l_list_tx_out; l_tx_out; l_tx_out = dap_list_next(l_tx_out)) {
         dap_chain_tx_item_type_t l_type = *(uint8_t *)l_tx_out->data;
-        if (l_type == TX_ITEM_TYPE_OUT_COND) {
+        if (l_type == TX_ITEM_TYPE_OUT_COND_OLD) {
             // Update stakes if any
             dap_chain_tx_out_cond_t *l_cond = (dap_chain_tx_out_cond_t *)l_tx_out->data;
             if (l_cond->header.subtype == DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE && !l_stake_updated) {
@@ -2493,13 +2493,13 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
             }
             continue;   // balance raise will be with next conditional transaction
         }
-        dap_chain_tx_out_t *l_out_item = NULL;
-        dap_chain_256_tx_out_t *l_out_item_256 = NULL;
+        dap_chain_tx_out_old_t *l_out_item = NULL;
+        dap_chain_tx_out_t *l_out_item_256 = NULL;
         dap_chain_tx_out_ext_t *l_out_item_ext_256 = NULL;
 
         switch (l_type) {
-            case TX_ITEM_TYPE_OUT_256: l_out_item_256 = (dap_chain_256_tx_out_t *)l_tx_out->data; break;
-            case TX_ITEM_TYPE_OUT: l_out_item = (dap_chain_tx_out_t *)l_tx_out->data; break;
+            case TX_ITEM_TYPE_OUT: l_out_item_256 = (dap_chain_tx_out_t *)l_tx_out->data; break;
+            case TX_ITEM_TYPE_OUT_OLD: l_out_item = (dap_chain_tx_out_old_t *)l_tx_out->data; break;
             case TX_ITEM_TYPE_OUT_EXT: l_out_item_ext_256 = (dap_chain_tx_out_ext_t *)l_tx_out->data; break;
             default:
                 log_it(L_DEBUG, "Unknown item type %d", l_type);
@@ -2509,8 +2509,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
         if ((l_out_item||l_out_item_256||l_out_item_ext_256) && l_ticker_trl) {
             dap_chain_addr_t *l_addr;
             switch (l_type) {
-                case TX_ITEM_TYPE_OUT_256: l_addr = &l_out_item_256->addr; break;
-                case TX_ITEM_TYPE_OUT: l_addr = &l_out_item->addr; break;
+                case TX_ITEM_TYPE_OUT: l_addr = &l_out_item_256->addr; break;
+                case TX_ITEM_TYPE_OUT_OLD: l_addr = &l_out_item->addr; break;
                 case TX_ITEM_TYPE_OUT_EXT: l_addr = &l_out_item_ext_256->addr; break;
                 default:
                     log_it(L_DEBUG, "Unknown item type %d", l_type);
@@ -2524,8 +2524,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
             char *l_wallet_balance_key = dap_strjoin(" ", l_addr_str, l_token_ticker, (char*)NULL);
             uint256_t l_value_256 = {};
             switch (l_type) {
-                case TX_ITEM_TYPE_OUT_256: l_value_256 = l_out_item_256->header.value; break; // _256
-                case TX_ITEM_TYPE_OUT: l_value_256 = GET_256_FROM_64(l_out_item->header.value); break;
+                case TX_ITEM_TYPE_OUT: l_value_256 = l_out_item_256->header.value; break; // _256
+                case TX_ITEM_TYPE_OUT_OLD: l_value_256 = GET_256_FROM_64(l_out_item->header.value); break;
                 case TX_ITEM_TYPE_OUT_EXT: l_value_256 = l_out_item_ext_256->header.value; break; // _256
                 default:
                     log_it(L_DEBUG, "Unknown item type %d", l_type);
@@ -2579,8 +2579,8 @@ int dap_chain_ledger_tx_add(dap_ledger_t *a_ledger, dap_chain_datum_tx_t *a_tx,
         if (dap_log_level_get() == L_DEBUG && s_debug_more) {
             dap_list_t *it = l_tist_tmp;
             for (int i = 0; i < l_item_tmp->cache_data.n_outs; i++) {
-                dap_chain_tx_out_t *l_tx_out = it->data;
-                if (l_tx_out->header.type != TX_ITEM_TYPE_OUT)
+                dap_chain_tx_out_old_t *l_tx_out = it->data;
+                if (l_tx_out->header.type != TX_ITEM_TYPE_OUT_OLD)
                     continue;
                 char * l_tx_out_addr_str = dap_chain_addr_to_str( &l_tx_out->addr );
                 log_it(L_DEBUG, "Added tx out to %s", l_tx_out_addr_str);
@@ -2972,11 +2972,11 @@ uint256_t dap_chain_ledger_calc_balance_full(dap_ledger_t *a_ledger, const dap_c
         for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_out_idx_tmp++) {
             assert(l_list_tmp->data);
             dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data;
-            if (l_type == TX_ITEM_TYPE_OUT_COND) {
+            if (l_type == TX_ITEM_TYPE_OUT_COND_OLD) {
                 continue;
             }
-            if (l_type == TX_ITEM_TYPE_OUT) {
-                const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data;
+            if (l_type == TX_ITEM_TYPE_OUT_OLD) {
+                const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data;
                 // Check for token name
                 if (!strcmp(a_token_ticker, l_iter_current->cache_data.token_ticker))
                 {   // if transaction has the out item with requested addr
@@ -2992,9 +2992,9 @@ uint256_t dap_chain_ledger_calc_balance_full(dap_ledger_t *a_ledger, const dap_c
                     }
                 }
             }
-            if (l_type == TX_ITEM_TYPE_OUT_256) { // 256
-                const dap_chain_256_tx_out_t *l_tx_out = (const dap_chain_256_tx_out_t*) l_list_tmp->data;
-                // const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data;
+            if (l_type == TX_ITEM_TYPE_OUT) { // 256
+                const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data;
+                // const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data;
                 // Check for token name
                 if (!strcmp(a_token_ticker, l_iter_current->cache_data.token_ticker))
                 {   // if transaction has the out item with requested addr
@@ -3068,7 +3068,7 @@ static dap_chain_ledger_tx_item_t* tx_item_find_by_addr(dap_ledger_t *a_ledger,
         for(dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp)) {
             assert(l_list_tmp->data);
             dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data;
-            if (l_type == TX_ITEM_TYPE_OUT_COND) {
+            if (l_type == TX_ITEM_TYPE_OUT_COND || l_type == TX_ITEM_TYPE_OUT_COND_OLD) {
                 continue;
             }
             if (l_type == TX_ITEM_TYPE_OUT) {
@@ -3080,6 +3080,15 @@ static dap_chain_ledger_tx_item_t* tx_item_find_by_addr(dap_ledger_t *a_ledger,
                     break;
                 }
             }
+            if (l_type == TX_ITEM_TYPE_OUT_OLD) {
+                const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t *)l_list_tmp->data;
+                // if transaction has the out item with requested addr
+                if(!memcmp(a_addr, &l_tx_out->addr, sizeof(dap_chain_addr_t))) {
+                    memcpy(a_tx_first_hash, l_tx_hash, sizeof(dap_chain_hash_fast_t));
+                    is_tx_found = true;
+                    break;
+                }
+            }
             if (l_type == TX_ITEM_TYPE_OUT_EXT) {
                 const dap_chain_tx_out_ext_t *l_tx_out_ext = (const dap_chain_tx_out_ext_t *)l_list_tmp->data;
                 // If a_token is setup we check if its not our token - miss it
@@ -3288,15 +3297,15 @@ dap_list_t *dap_chain_ledger_get_list_tx_outs_with_val(dap_ledger_t *a_ledger, c
             dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data;
             uint256_t l_value = {};
             switch (l_type) {
-                case TX_ITEM_TYPE_OUT: {
-                    dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data;
+                case TX_ITEM_TYPE_OUT_OLD: {
+                    dap_chain_tx_out_old_t *l_out = (dap_chain_tx_out_old_t *)l_list_tmp->data;
                     if (!l_out->header.value || memcmp(a_addr_from, &l_out->addr, sizeof(dap_chain_addr_t))) {
                         continue;
                     }
                     l_value = GET_256_FROM_64(l_out->header.value);
                 } break;
-                case TX_ITEM_TYPE_OUT_256: {
-                    dap_chain_256_tx_out_t *l_out = (dap_chain_256_tx_out_t *)l_list_tmp->data;
+                case TX_ITEM_TYPE_OUT: {
+                    dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data;
                     if ( IS_ZERO_256(l_out->header.value) || memcmp(a_addr_from, &l_out->addr, sizeof(dap_chain_addr_t))) {
                         continue;
                     }
@@ -3310,8 +3319,8 @@ dap_list_t *dap_chain_ledger_get_list_tx_outs_with_val(dap_ledger_t *a_ledger, c
                     }
                     l_value = l_out_ext->header.value;
                 } break;
+                case TX_ITEM_TYPE_OUT_COND_OLD:
                 case TX_ITEM_TYPE_OUT_COND:
-                case TX_ITEM_TYPE_OUT_256_COND:
                 default:
                     continue;
             }
diff --git a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
index eb6a5f64fe110dca772346c89ac5098126082661..8cfcbf050da18b46e3fc2391e2402c48811ebda6 100644
--- a/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
+++ b/modules/channel/chain-net-srv/dap_stream_ch_chain_net_srv.c
@@ -186,7 +186,7 @@ static bool s_grace_period_control(dap_chain_net_srv_grace_t *a_grace)
         if (!l_grace_start) {
             int l_tx_out_cond_size =0;
             l_tx_out_cond = (dap_chain_tx_out_cond_t *)
-                    dap_chain_datum_tx_item_get(l_tx, NULL, TX_ITEM_TYPE_OUT_COND, &l_tx_out_cond_size );
+                    dap_chain_datum_tx_item_get(l_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, &l_tx_out_cond_size );
 
             if ( ! l_tx_out_cond ) { // No conditioned output
                 log_it( L_WARNING, "No conditioned output");
@@ -470,7 +470,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch , void* a_arg)
                     }
                     int l_tx_out_cond_size =0;
                     l_tx_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(l_usage->tx_cond, NULL,
-                                                                                           TX_ITEM_TYPE_OUT_COND, &l_tx_out_cond_size );
+                                                                                           TX_ITEM_TYPE_OUT_COND_OLD, &l_tx_out_cond_size );
                     if ( ! l_tx_out_cond ){ // No conditioned output
                         l_err.code = DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_NO_COND_OUT ;
                         dap_stream_ch_pkt_write_unsafe( a_ch, DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR, &l_err, sizeof (l_err) );
diff --git a/modules/common/dap_chain_datum_tx.c b/modules/common/dap_chain_datum_tx.c
index e73cdc334cdde6774d50571b0dde95916e5bdbb2..37889fdc067611e805783d5f2864554bc0d0d70e 100644
--- a/modules/common/dap_chain_datum_tx.c
+++ b/modules/common/dap_chain_datum_tx.c
@@ -149,7 +149,7 @@ int dap_chain_datum_tx_add_in_cond_item(dap_chain_datum_tx_t **a_tx, dap_chain_h
  */
 int dap_chain_datum_tx_add_out_item(dap_chain_datum_tx_t **a_tx, const dap_chain_addr_t *a_addr, uint256_t a_value)
 {
-    dap_chain_256_tx_out_t *l_tx_out = dap_chain_datum_tx_item_out_create(a_addr, a_value);
+    dap_chain_tx_out_t *l_tx_out = dap_chain_datum_tx_item_out_create(a_addr, a_value);
     if(l_tx_out) {
         dap_chain_datum_tx_add_item(a_tx, (const uint8_t *)l_tx_out);
         DAP_DELETE(l_tx_out);
diff --git a/modules/common/dap_chain_datum_tx_items.c b/modules/common/dap_chain_datum_tx_items.c
index 8723a48914e2171355311548ad57193f2fa22574..3567cca7906dd1cd3e970ef9172f747aa8161f6b 100644
--- a/modules/common/dap_chain_datum_tx_items.c
+++ b/modules/common/dap_chain_datum_tx_items.c
@@ -51,18 +51,18 @@ static size_t dap_chain_tx_in_cond_get_size(const dap_chain_tx_in_cond_t *a_item
     return size;
 }
 
-static size_t dap_chain_tx_out_get_size(const dap_chain_tx_out_t *a_item)
+static size_t dap_chain_tx_out_get_size(const dap_chain_tx_out_old_t *a_item)
 {
     (void) a_item;
-    size_t size = sizeof(dap_chain_tx_out_t);
+    size_t size = sizeof(dap_chain_tx_out_old_t);
     return size;
 }
 
 // 256
-static size_t dap_chain_256_tx_out_get_size(const dap_chain_256_tx_out_t *a_item)
+static size_t dap_chain_256_tx_out_get_size(const dap_chain_tx_out_t *a_item)
 {
     (void) a_item;
-    size_t size = sizeof(dap_chain_256_tx_out_t);
+    size_t size = sizeof(dap_chain_tx_out_t);
     return size;
 }
 
@@ -129,11 +129,11 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item)
     case TX_ITEM_TYPE_IN: // Transaction inputs
         size = dap_chain_tx_in_get_size((const dap_chain_tx_in_t*) a_item);
         break;
-    case TX_ITEM_TYPE_OUT: // Transaction outputs
-        size = dap_chain_tx_out_get_size((const dap_chain_tx_out_t*) a_item);
+    case TX_ITEM_TYPE_OUT_OLD: // Transaction outputs
+        size = dap_chain_tx_out_get_size((const dap_chain_tx_out_old_t*) a_item);
         break;
-    case TX_ITEM_TYPE_OUT_256: // 256
-        size = dap_chain_256_tx_out_get_size((const dap_chain_256_tx_out_t*) a_item);
+    case TX_ITEM_TYPE_OUT: // 256
+        size = dap_chain_256_tx_out_get_size((const dap_chain_tx_out_t*) a_item);
         break;
     case TX_ITEM_TYPE_OUT_EXT: // Exchange transaction outputs
         size = dap_chain_tx_out_ext_get_size((const dap_chain_tx_out_ext_t*) a_item);
@@ -144,10 +144,10 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item)
     case TX_ITEM_TYPE_IN_COND: // Transaction inputs with condition
         size = dap_chain_tx_in_cond_get_size((const dap_chain_tx_in_cond_t*) a_item);
         break;
-    case TX_ITEM_TYPE_OUT_COND: // Transaction output with condition
+    case TX_ITEM_TYPE_OUT_COND_OLD: // Transaction output with condition
         size = 0; // obsolete dap_chain_tx_out_cond_get_size((const dap_chain_tx_out_cond_t*) a_item);
         break;
-    case TX_ITEM_TYPE_OUT_256_COND: // 256
+    case TX_ITEM_TYPE_OUT_COND: // 256
         size = dap_chain_tx_out_cond_get_size((const dap_chain_tx_out_cond_t *)a_item);
         break;
     case TX_ITEM_TYPE_PKEY: // Transaction public keys
@@ -183,7 +183,7 @@ dap_chain_tx_token_t *dap_chain_datum_tx_item_token_create(dap_chain_id_t a_id,
 }
 
 /**
- * Create item dap_chain_tx_out_t
+ * Create item dap_chain_tx_out_old_t
  *
  * return item, NULL Error
  */
@@ -219,16 +219,16 @@ dap_chain_tx_in_cond_t* dap_chain_datum_tx_item_in_cond_create(dap_chain_hash_fa
 }
 
 /**
- * Create item dap_chain_tx_out_t
+ * Create item dap_chain_tx_out_old_t
  *
  * return item, NULL Error
  */
-dap_chain_256_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value)
+dap_chain_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value)
 {
     if(!a_addr)
         return NULL;
-    dap_chain_256_tx_out_t *l_item = DAP_NEW_Z(dap_chain_256_tx_out_t);
-    l_item->header.type = TX_ITEM_TYPE_OUT_256;
+    dap_chain_tx_out_t *l_item = DAP_NEW_Z(dap_chain_tx_out_t);
+    l_item->header.type = TX_ITEM_TYPE_OUT;
     l_item->header.value = a_value;
     memcpy(&l_item->addr, a_addr, sizeof(dap_chain_addr_t));
     return l_item;
@@ -263,7 +263,7 @@ dap_chain_tx_out_cond_t* dap_chain_datum_tx_item_out_cond_create_srv_pay(dap_pke
     if(l_item == NULL)
         return NULL;
 
-    l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND;
+    l_item->header.item_type = TX_ITEM_TYPE_OUT_COND;
     l_item->header.value = a_value;
     l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_PAY;
     l_item->subtype.srv_pay.srv_uid = a_srv_uid;
@@ -285,7 +285,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_item_out_cond_create_srv_xchange(dap
         return NULL;
     }
     dap_chain_tx_out_cond_t *l_item = DAP_NEW_Z_SIZE(dap_chain_tx_out_cond_t, sizeof(dap_chain_tx_out_cond_t) + a_params_size);
-    l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND;
+    l_item->header.item_type = TX_ITEM_TYPE_OUT_COND;
     l_item->header.value = a_value;
     l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_XCHANGE;
     l_item->subtype.srv_xchange.srv_uid = a_srv_uid;
@@ -303,7 +303,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_item_out_cond_create_srv_stake(dap_c
                                                                            dap_chain_addr_t *a_signing_addr, dap_chain_node_addr_t *a_signer_node_addr)
 {
     dap_chain_tx_out_cond_t *l_item = DAP_NEW_Z(dap_chain_tx_out_cond_t);
-    l_item->header.item_type = TX_ITEM_TYPE_OUT_256_COND;
+    l_item->header.item_type = TX_ITEM_TYPE_OUT_COND;
     l_item->header.value = a_value;
     l_item->header.subtype = DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE;
     l_item->subtype.srv_stake.srv_uid = a_srv_uid;
@@ -377,6 +377,7 @@ uint8_t* dap_chain_datum_tx_item_get( dap_chain_datum_tx_t *a_tx, int *a_item_id
             dap_chain_tx_item_type_t l_type = dap_chain_datum_tx_item_get_type(l_item);
             if (a_type == TX_ITEM_TYPE_ANY || a_type == l_type ||
                     (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT) ||
+                    (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_OLD) ||
                     (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_COND) ||
                     (a_type == TX_ITEM_TYPE_OUT_ALL && l_type == TX_ITEM_TYPE_OUT_EXT)) {
                 if(a_item_idx_start)
@@ -425,7 +426,7 @@ dap_chain_tx_out_cond_t *dap_chain_datum_tx_out_cond_get(dap_chain_datum_tx_t *a
     int l_prev_cond_idx = l_list_out_items ? 0 : -1;
     dap_chain_tx_out_cond_t *l_res = NULL;
     for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_prev_cond_idx++) {
-        if (*(uint8_t *)l_list_tmp->data == TX_ITEM_TYPE_OUT_COND) {
+        if (*(uint8_t *)l_list_tmp->data == TX_ITEM_TYPE_OUT_COND_OLD) {
             l_res = l_list_tmp->data;
             break;
         }
diff --git a/modules/common/include/dap_chain_common.h b/modules/common/include/dap_chain_common.h
index c7623b2df662cca6d67f252fe73acf484d6586b9..965c90a46007f406a21f08fd669a34648568502b 100644
--- a/modules/common/include/dap_chain_common.h
+++ b/modules/common/include/dap_chain_common.h
@@ -192,9 +192,9 @@ typedef union {
 enum dap_chain_tx_item_type {
     TX_ITEM_TYPE_IN = 0x00, /// @brief  Transaction: inputs
 
-    TX_ITEM_TYPE_OUT = 0x10, /// @brief  Transaction: outputs
+    TX_ITEM_TYPE_OUT_OLD = 0x10, /// @brief  Transaction: outputs
     TX_ITEM_TYPE_OUT_EXT = 0x11,
-    TX_ITEM_TYPE_OUT_256 = 0x12, // 256
+    TX_ITEM_TYPE_OUT = 0x12, // 256
 
     TX_ITEM_TYPE_PKEY = 0x20,
     TX_ITEM_TYPE_SIG = 0x30,
@@ -203,8 +203,8 @@ enum dap_chain_tx_item_type {
 
     TX_ITEM_TYPE_IN_COND = 0x50, /// @brief  Transaction: conditon inputs
 
-    TX_ITEM_TYPE_OUT_COND = 0x60, // Obsolete
-    TX_ITEM_TYPE_OUT_256_COND = 0x61, /// @brief  Transaction: 256 bit conditon outputs
+    TX_ITEM_TYPE_OUT_COND_OLD = 0x60, // Obsolete
+    TX_ITEM_TYPE_OUT_COND = 0x61, /// @brief  Transaction: 256 bit conditon outputs
 
     TX_ITEM_TYPE_RECEIPT = 0x70,
 
diff --git a/modules/common/include/dap_chain_datum_tx_items.h b/modules/common/include/dap_chain_datum_tx_items.h
index 5f1f85ee0f5d683c8860ee0c841af80203005f20..0e33c0ecf03b7fe451c10eeb100e800616d25b53 100644
--- a/modules/common/include/dap_chain_datum_tx_items.h
+++ b/modules/common/include/dap_chain_datum_tx_items.h
@@ -52,17 +52,17 @@ DAP_STATIC_INLINE const char * dap_chain_datum_tx_item_type_to_str(dap_chain_tx_
 {
     switch(a_item_type){
         case TX_ITEM_TYPE_IN: return "TX_ITEM_TYPE_IN";
-        case TX_ITEM_TYPE_OUT: return "TX_ITEM_TYPE_OUT";
-        case TX_ITEM_TYPE_OUT_256: return "TX_ITEM_TYPE_OUT_256"; // 256
+        case TX_ITEM_TYPE_OUT_OLD: return "TX_ITEM_TYPE_OUT_OLD";
+        case TX_ITEM_TYPE_OUT: return "TX_ITEM_TYPE_OUT"; // 256
         case TX_ITEM_TYPE_OUT_EXT: return "TX_ITEM_TYPE_OUT_EXT"; // 256
         case TX_ITEM_TYPE_PKEY: return "TX_ITEM_TYPE_PKEY";
         case TX_ITEM_TYPE_SIG: return "TX_ITEM_TYPE_SIG";
         case TX_ITEM_TYPE_TOKEN: return "TX_ITEM_TYPE_TOKEN";
         case TX_ITEM_TYPE_TOKEN_EXT: return "TX_ITEM_TYPE_TOKEN_EXT";
         case TX_ITEM_TYPE_IN_COND: return "TX_ITEM_TYPE_IN_COND";
-        case TX_ITEM_TYPE_OUT_COND: return "TX_ITEM_TYPE_OUT_COND"; // 256
+        case TX_ITEM_TYPE_OUT_COND_OLD: return "TX_ITEM_TYPE_OUT_COND_OLD"; // 256
         case TX_ITEM_TYPE_RECEIPT: return "TX_ITEM_TYPE_RECEIPT";
-        case TX_ITEM_TYPE_OUT_ALL: return "TX_ITEM_TYPE_OUT_ALL";
+        case TX_ITEM_TYPE_OUT_ALL: return "TX_ITEM_TYPE_OUT_OLDALL";
         case TX_ITEM_TYPE_ANY: return "TX_ITEM_TYPE_ANY";
         default: return "UNDEFINED";
     }
@@ -83,7 +83,7 @@ size_t dap_chain_datum_item_tx_get_size(const uint8_t *a_item);
 dap_chain_tx_token_t *dap_chain_datum_tx_item_token_create(dap_chain_id_t a_id, dap_chain_hash_fast_t *a_datum_token_hash, const char *a_ticker);
 
 /**
- * Create item dap_chain_tx_out_t
+ * Create item dap_chain_tx_out_old_t
  *
  * return item, NULL Error
  */
@@ -93,11 +93,11 @@ dap_chain_tx_in_t* dap_chain_datum_tx_item_in_create(dap_chain_hash_fast_t *a_tx
 dap_chain_tx_in_cond_t* dap_chain_datum_tx_item_in_cond_create(dap_chain_hash_fast_t *a_tx_prev_hash, uint32_t a_tx_out_prev_idx,
                                                                uint32_t a_receipt_idx);
 /**
- * Create item dap_chain_tx_out_t
+ * Create item dap_chain_tx_out_old_t
  *
  * return item, NULL Error
  */
-dap_chain_256_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value);
+dap_chain_tx_out_t* dap_chain_datum_tx_item_out_create(const dap_chain_addr_t *a_addr, uint256_t a_value);
 
 /**
  * Create item dap_chain_tx_out_ext_t
diff --git a/modules/common/include/dap_chain_datum_tx_out.h b/modules/common/include/dap_chain_datum_tx_out.h
index 04d6719941520a3ae76365e8aa16854ba9671a08..852975d64cf82aa023cfa55273546e1ff0652879 100644
--- a/modules/common/include/dap_chain_datum_tx_out.h
+++ b/modules/common/include/dap_chain_datum_tx_out.h
@@ -32,19 +32,19 @@
   * @struct dap_chain_tx_out
   * @brief Transaction item outout
   */
-typedef struct dap_chain_tx_out{
+typedef struct dap_chain_tx_out_old {
     struct {
         dap_chain_tx_item_type_t type; ///           @param    type            @brief  Transaction item type
         uint64_t value; ///                       @param    value           @brief  Number of Datoshis ( DAP/10^9 ) to be transfered
     } header; /// Only header's hash is used for verification
     dap_chain_addr_t addr; ////
-} DAP_ALIGN_PACKED dap_chain_tx_out_t;
+} DAP_ALIGN_PACKED dap_chain_tx_out_old_t;
 
 //256
-typedef struct dap_chain_256_tx_out{
+typedef struct dap_chain_tx_out {
     struct {
         dap_chain_tx_item_type_t type; ///           @param    type            @brief  Transaction item type
         uint256_t value; ///                       @param    value           @brief  Number of Datoshis ( DAP/10^9 ) to be transfered
     } header; /// Only header's hash is used for verification
     dap_chain_addr_t addr; ////
-} DAP_ALIGN_PACKED dap_chain_256_tx_out_t;
+} DAP_ALIGN_PACKED dap_chain_tx_out_t;
diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
index 7a4db683f1aedf0aea8dbf70be41f375abce29a1..6809f15b0d4839146b5bf87b6a7729a6ecd5c87a 100644
--- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
+++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c
@@ -378,9 +378,6 @@ static int s_callback_new(dap_chain_t * a_chain, dap_config_t * a_chain_cfg)
     l_poa_pvt->callback_pre_sign = NULL;
     l_poa_pvt->prev_callback_created = l_dag->chain->callback_created;
     l_dag->chain->callback_created = s_callback_created;
-    
-dap_chain_cs_dag_poa_presign_callback_set(l_dag->chain,
-           (dap_chain_cs_dag_poa_callback_t)s_callback_presign_test, "Presign callback test");
 
     return 0;
 }
@@ -685,9 +682,9 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_
         // if my sign exists
         if (PVT(l_poa)->auto_round_complete) {
             if ( s_round_event_ready_minimum_check(a_dag, l_event, l_event_size,
-                                                            a_key,  &l_round_item->round_info) ) {
+                                                            (char *)a_key,  &l_round_item->round_info) ) {
                 // cs done (minimum signs & verify passed)
-                s_round_event_cs_done(a_dag, l_event, a_key, &l_round_item->round_info);
+                s_round_event_cs_done(a_dag, l_event, (char *)a_key, &l_round_item->round_info);
             }
         }
         DAP_DELETE(l_round_item);
@@ -715,7 +712,7 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_
             if ( l_round_item->round_info.reject_count // check reject count
                             <= (PVT(l_poa)->auth_certs_count - l_round_item->round_info.confirmations_minimum) ) {
                 // update reject_count
-                dap_chain_cs_dag_event_gdb_set(a_key, l_event, l_event_size,
+                dap_chain_cs_dag_event_gdb_set((char *)a_key, l_event, l_event_size,
                                                         l_round_item, a_group);
             }
             else {
diff --git a/modules/mempool/dap_chain_mempool.c b/modules/mempool/dap_chain_mempool.c
index 052155dbf323e4ce6b5f3aa44aa07990e275befe..598b213aedb8002fd0622c32503fe244cee2cdc0 100644
--- a/modules/mempool/dap_chain_mempool.c
+++ b/modules/mempool/dap_chain_mempool.c
@@ -252,9 +252,8 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
                 break;
         }
         if (compare256(l_value_to_items, l_single_val) == -1) {
-            log_it(L_ERROR, "Not enought values on output %s to produce enought ins %s when need %s",
-                   dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_value_transfer),
-                   dap_chain_balance_print(l_value_need));
+            log_it(L_ERROR, "Not enough values on output to produce enough inputs: %s when need %s",
+                   dap_chain_balance_print(l_value_to_items), dap_chain_balance_print(l_single_val));
             DAP_DELETE(l_objs);
             return -5;
         }
@@ -299,7 +298,7 @@ int dap_chain_mempool_tx_create_massive( dap_chain_t * a_chain, dap_enc_key_t *a
             int l_out_idx_tmp = 0; // current index of 'out' item
             //log_it(L_DEBUG,"We have %d outputs in new TX", l_item_count);
             while(l_list_tmp) {
-                dap_chain_tx_out_t * l_out = l_list_tmp->data ;
+                dap_chain_tx_out_t *l_out = l_list_tmp->data;
                 if( ! l_out){
                     log_it(L_WARNING, "Output is NULL, continue check outputs...");
                     l_out_idx_tmp++;
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index 09b121692f3b532fa302da2756ce3924ca161a24..ea269085792dbe15fc115ef3e30175bd71d01c9f 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -3208,19 +3208,19 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu
                                     dap_hash_fast_to_str(&l_in->header.tx_prev_hash, l_tx_prev_hash_str, sizeof (l_tx_prev_hash_str)-1);
                                     dap_string_append_printf(a_str_out,"\ttx_prev_hash : %s\n", l_tx_prev_hash_str );
                                 } break;
-                                case TX_ITEM_TYPE_OUT_256: { // 256
+                                case TX_ITEM_TYPE_OUT: { // 256
                                     dap_string_append_printf(a_str_out,"\tvalue: %s\n",
-                                                dap_chain_balance_print(((dap_chain_256_tx_out_t *)l_cur->data)->header.value)
+                                                dap_chain_balance_print(((dap_chain_tx_out_t *)l_cur->data)->header.value)
                                             );
-                                    char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_256_tx_out_t *)l_cur->data)->addr );
+                                    char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_t *)l_cur->data)->addr );
                                     dap_string_append_printf(a_str_out,"\taddr : %s\n", l_addr_str );
                                     DAP_DELETE(l_addr_str);
                                 } break;
-                                case TX_ITEM_TYPE_OUT:{
+                                case TX_ITEM_TYPE_OUT_OLD:{
                                     dap_string_append_printf(a_str_out,"\tvalue: %"DAP_UINT64_FORMAT_U"\n",
-                                                ((dap_chain_tx_out_t *)l_cur->data)->header.value
+                                                ((dap_chain_tx_out_old_t *)l_cur->data)->header.value
                                             );
-                                    char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_t *)l_cur->data)->addr );
+                                    char * l_addr_str = dap_chain_addr_to_str( &((dap_chain_tx_out_old_t *)l_cur->data)->addr );
                                     dap_string_append_printf(a_str_out,"\taddr : %s\n", l_addr_str );
                                     DAP_DELETE(l_addr_str);
                                 } break;
@@ -3273,7 +3273,7 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu
                                     dap_hash_fast_to_str(&l_in->header.tx_prev_hash, l_tx_prev_hash_str,sizeof (l_tx_prev_hash_str)-1);
                                     dap_string_append_printf(a_str_out,"\ttx_prev_hash : %s\n", l_tx_prev_hash_str );
                                 } break;
-                                case TX_ITEM_TYPE_OUT_256_COND: { // 256
+                                case TX_ITEM_TYPE_OUT_COND: { // 256
                                     dap_chain_tx_out_cond_t * l_out = l_cur->data;
                                     dap_string_append_printf(a_str_out,"\tvalue: %s\n", dap_chain_balance_print(l_out->header.value) );
                                     switch ( l_out->header.subtype){
@@ -3308,7 +3308,7 @@ void dap_chain_net_dump_datum(dap_string_t *a_str_out, dap_chain_datum_t *a_datu
                                     }
                                     dap_string_append_printf(a_str_out,"\tparams_size : %u\n", l_out->params_size );
                                 } break;
-                                case TX_ITEM_TYPE_OUT_COND:{
+                                case TX_ITEM_TYPE_OUT_COND_OLD:{
                                     dap_chain_tx_out_cond_old_t * l_out = l_cur->data;
                                     dap_string_append_printf(a_str_out,"\tvalue: %"DAP_UINT64_FORMAT_U"\n", l_out->header.value );
                                     switch ( l_out->header.subtype){
diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 9724464f4039a18f7d033c545a1fe8e6b18c1c50..2fac9a02075bbf23122695ebc39754292544ebf8 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -3412,7 +3412,7 @@ int com_token_emit(int a_argc, char ** a_argv, char ** a_str_reply)
 
     dap_chain_tx_token_t *l_tx_token = dap_chain_datum_tx_item_token_create(l_chain_emission->id, &l_token_emission_hash, l_ticker);
     dap_chain_tx_in_t *l_in = dap_chain_datum_tx_item_in_create(&l_tx_prev_hash, 0);
-    dap_chain_256_tx_out_t *l_out = dap_chain_datum_tx_item_out_create(l_addr, l_emission_value);
+    dap_chain_tx_out_t *l_out = dap_chain_datum_tx_item_out_create(l_addr, l_emission_value);
 
     // pack items to transaction
     dap_chain_datum_tx_add_item(&l_tx, (const uint8_t*) l_tx_token);
diff --git a/modules/net/dap_chain_node_cli_cmd_tx.c b/modules/net/dap_chain_node_cli_cmd_tx.c
index 172cbb61fde88278327be52ed0eb823027389652..e0b93b3f27c28e516e275d27619c0fb71bba1760 100644
--- a/modules/net/dap_chain_node_cli_cmd_tx.c
+++ b/modules/net/dap_chain_node_cli_cmd_tx.c
@@ -144,22 +144,22 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                         ((dap_chain_tx_in_t*)item)->header.tx_out_prev_idx);
             DAP_DELETE(l_hash_str);
             break;
-        case TX_ITEM_TYPE_OUT:
+        case TX_ITEM_TYPE_OUT_OLD:
             dap_string_append_printf(a_str_out, "\t OUT:\n"
                                                 "\t\t Value: %s (%"DAP_UINT64_FORMAT_U")\n"
                                                 "\t\t Address: %s\n",
                                         dap_chain_balance_to_coins(dap_chain_uint256_from(
-                                                                      ((dap_chain_tx_out_t*)item)->header.value)),
-                                        ((dap_chain_tx_out_t*)item)->header.value,
-                                        dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr));
+                                                                      ((dap_chain_tx_out_old_t*)item)->header.value)),
+                                        ((dap_chain_tx_out_old_t*)item)->header.value,
+                                        dap_chain_addr_to_str(&((dap_chain_tx_out_old_t*)item)->addr));
             break;
-        case TX_ITEM_TYPE_OUT_256: { // 256
+        case TX_ITEM_TYPE_OUT: { // 256
             dap_string_append_printf(a_str_out, "\t OUT 256_t:\n"
                                                 "\t\t Value: %s (%s)\n"
                                                 "\t\t Address: %s\n",
-                                        dap_chain_balance_to_coins(((dap_chain_256_tx_out_t*)item)->header.value),
-                                        dap_chain_balance_print(((dap_chain_256_tx_out_t*)item)->header.value),
-                                        dap_chain_addr_to_str(&((dap_chain_256_tx_out_t*)item)->addr));
+                                        dap_chain_balance_to_coins(((dap_chain_tx_out_t*)item)->header.value),
+                                        dap_chain_balance_print(((dap_chain_tx_out_t*)item)->header.value),
+                                        dap_chain_addr_to_str(&((dap_chain_tx_out_t*)item)->addr));
             break;
         }
         case TX_ITEM_TYPE_TOKEN:
@@ -281,7 +281,7 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                                      ((dap_chain_tx_in_cond_t*)item)->header.tx_out_prev_idx);
             DAP_DELETE(l_hash_str);
             break;
-        case TX_ITEM_TYPE_OUT_COND:
+        case TX_ITEM_TYPE_OUT_COND_OLD:
             dap_string_append_printf(a_str_out, "\t OUT COND:\n"
                                                 "\t Header:\n"
                                                 "\t\t\t ts_expires: %s\t"
@@ -337,7 +337,7 @@ static bool s_dap_chain_datum_tx_out_data(dap_chain_datum_tx_t *a_datum,
                 default: break;
             }
             break;
-        case TX_ITEM_TYPE_OUT_256_COND: // 256
+        case TX_ITEM_TYPE_OUT_COND: // 256
             dap_string_append_printf(a_str_out, "\t OUT 256_t COND:\n"
                                                 "\t Header:\n"
                                                 "\t\t\t ts_expires: %s\t"
@@ -469,9 +469,9 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
 
             // find OUT items
             bool l_type_256 = false;
-            dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL);
+            dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL);
             if (!l_list_out_items) {
-                l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_256, NULL);
+                l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL);
                 l_type_256 = true;
             }
 
@@ -479,8 +479,8 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
 
             while(l_list_tmp) {
 
-                const dap_chain_256_tx_out_t *l_tx_out_256  = (const dap_chain_256_tx_out_t*) l_list_tmp->data;
-                const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data;
+                const dap_chain_tx_out_t *l_tx_out_256  = (const dap_chain_tx_out_t*) l_list_tmp->data;
+                const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data;
 
                 // save OUT item l_tx_out - only for first OUT item
                 if(!l_tx_data) {
@@ -563,14 +563,14 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
 
             // find all OUT items in transaction
             if ( l_type_256 )
-                l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_256, NULL);
-            else
                 l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL);
+            else
+                l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL);
             l_list_tmp = l_list_out_items;
 
             while(l_list_tmp) {
-                const dap_chain_256_tx_out_t *l_tx_out_256 = (const dap_chain_256_tx_out_t*) l_list_tmp->data;
-                const dap_chain_tx_out_t *l_tx_out = (const dap_chain_tx_out_t*) l_list_tmp->data;
+                const dap_chain_tx_out_t *l_tx_out_256 = (const dap_chain_tx_out_t*) l_list_tmp->data;
+                const dap_chain_tx_out_old_t *l_tx_out = (const dap_chain_tx_out_old_t*) l_list_tmp->data;
                 //dap_tx_data_t *l_tx_data_prev = NULL;
 
                 const char *l_token_str = NULL;
@@ -634,22 +634,22 @@ char* dap_db_history_tx(dap_chain_hash_fast_t* a_tx_hash, dap_chain_t * a_chain,
                     if ( l_type_256 ) { // 256
                         // find OUT items in prev datum
                         dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev,
-                                TX_ITEM_TYPE_OUT_256, NULL);
+                                TX_ITEM_TYPE_OUT, NULL);
                         // find OUT item for IN item;
                         dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_out_prev_items,
                                 l_tx_in->header.tx_out_prev_idx);
-                        dap_chain_256_tx_out_t *l_tx_prev_out =
-                                l_list_out_prev_item ? (dap_chain_256_tx_out_t*)l_list_out_prev_item->data : NULL;
+                        dap_chain_tx_out_t *l_tx_prev_out =
+                                l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL;
                         // print value from prev out item
                         dap_string_append_printf(l_str_out, "  prev OUT 256bitt item value=%s",
                                 l_tx_prev_out ? dap_chain_balance_print(l_tx_prev_out->header.value) : "0");
                     } else {
                         dap_list_t *l_list_out_prev_items = dap_chain_datum_tx_items_get(l_tx_prev,
-                                TX_ITEM_TYPE_OUT, NULL);
+                                TX_ITEM_TYPE_OUT_OLD, NULL);
                         dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_out_prev_items,
                                 l_tx_in->header.tx_out_prev_idx);
-                        dap_chain_tx_out_t *l_tx_prev_out =
-                                l_list_out_prev_item ? (dap_chain_tx_out_t*)l_list_out_prev_item->data : NULL;
+                        dap_chain_tx_out_old_t *l_tx_prev_out =
+                                l_list_out_prev_item ? (dap_chain_tx_out_old_t*)l_list_out_prev_item->data : NULL;
                         dap_string_append_printf(l_str_out, "  prev OUT item value=%"DAP_UINT64_FORMAT_U,
                                 l_tx_prev_out ? l_tx_prev_out->header.value : 0);
 
@@ -764,9 +764,9 @@ char* dap_db_history_addr(dap_chain_addr_t * a_addr, dap_chain_t * a_chain, cons
                 }
                 strncpy(l_tx_data->token_ticker, l_tx_data_prev->token_ticker, DAP_CHAIN_TICKER_SIZE_MAX);
                 dap_chain_datum_tx_t *l_tx_prev = (dap_chain_datum_tx_t *)l_tx_data_prev->datum->data;
-                dap_list_t *l_list_prev_out_items = dap_chain_datum_tx_items_get(l_tx_prev, TX_ITEM_TYPE_OUT, NULL);
+                dap_list_t *l_list_prev_out_items = dap_chain_datum_tx_items_get(l_tx_prev, TX_ITEM_TYPE_OUT_OLD, NULL);
                 dap_list_t *l_list_out_prev_item = dap_list_nth(l_list_prev_out_items, l_tx_in->header.tx_out_prev_idx);
-                l_src_addr = &((dap_chain_tx_out_t *)l_list_out_prev_item->data)->addr;
+                l_src_addr = &((dap_chain_tx_out_old_t *)l_list_out_prev_item->data)->addr;
                 l_src_addr_str = dap_chain_addr_to_str(l_src_addr);
                 dap_list_free(l_list_prev_out_items);
             }
@@ -792,9 +792,9 @@ char* dap_db_history_addr(dap_chain_addr_t * a_addr, dap_chain_t * a_chain, cons
                 l_tx_hash_str = dap_enc_base58_encode_to_str(&l_tx_data->tx_hash_str, sizeof(dap_chain_hash_fast_t));
             // find OUT items
             bool l_header_printed = false;
-            dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT, NULL);
+            dap_list_t *l_list_out_items = dap_chain_datum_tx_items_get(l_tx, TX_ITEM_TYPE_OUT_OLD, NULL);
             for (dap_list_t *l_list_out = l_list_out_items; l_list_out; l_list_out = dap_list_next(l_list_out)) {
-                dap_chain_tx_out_t *l_tx_out = (dap_chain_tx_out_t *)l_list_out->data;
+                dap_chain_tx_out_old_t *l_tx_out = (dap_chain_tx_out_old_t *)l_list_out->data;
                 if (l_src_addr && !memcmp(&l_tx_out->addr, l_src_addr, sizeof(dap_chain_addr_t)))
                     continue;   // send to self
                 if (l_src_addr && !memcmp(l_src_addr, a_addr, sizeof(dap_chain_addr_t))) {
diff --git a/modules/service/stake/dap_chain_net_srv_stake.c b/modules/service/stake/dap_chain_net_srv_stake.c
index da8695e0176b3d90682f3b72c8c3a9225b747c19..b9831fac0dc997278ecf35e9cd39d63885c78c72 100644
--- a/modules/service/stake/dap_chain_net_srv_stake.c
+++ b/modules/service/stake/dap_chain_net_srv_stake.c
@@ -156,7 +156,7 @@ static void s_stake_update(dap_chain_tx_out_cond_t *a_cond, dap_chain_datum_tx_t
     else
         l_stake = DAP_NEW_Z(dap_chain_net_srv_stake_item_t);
     assert(l_stake);
-    dap_chain_tx_out_cond_t *l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND, NULL);
+    dap_chain_tx_out_cond_t *l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, NULL);
     if (!l_out_cond || l_out_cond->header.subtype != DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE) {
         // Stake tx is used out
         HASH_DEL(s_srv_stake->itemlist, l_stake);
@@ -194,7 +194,7 @@ static bool s_stake_conditions_calc(dap_chain_tx_out_cond_t *a_cond, dap_chain_d
     dap_chain_tx_out_cond_t *l_out_cond = NULL;
     if (!a_cond) {
         // New stake tx
-        l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND, NULL);
+        l_out_cond = (dap_chain_tx_out_cond_t *)dap_chain_datum_tx_item_get(a_tx, NULL, TX_ITEM_TYPE_OUT_COND_OLD, NULL);
     } else
         l_out_cond = a_cond;
     dap_chain_net_id_t l_cur_net_id = l_out_cond->subtype.srv_stake.hldr_addr.net_id;
@@ -300,16 +300,16 @@ bool dap_chain_net_srv_stake_validator(dap_chain_addr_t *a_addr, dap_chain_datum
     uint32_t l_out_idx_tmp = 0; // current index of 'out' item
     for (dap_list_t *l_list_tmp = l_list_out_items; l_list_tmp; l_list_tmp = dap_list_next(l_list_tmp), l_out_idx_tmp++) {
         dap_chain_tx_item_type_t l_type = *(uint8_t *)l_list_tmp->data;
-        if (l_type == TX_ITEM_TYPE_OUT) {
-            dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data;
+        if (l_type == TX_ITEM_TYPE_OUT_OLD) {
+            dap_chain_tx_out_old_t *l_out = (dap_chain_tx_out_old_t *)l_list_tmp->data;
             if (!memcmp(&l_stake->addr_fee, &l_out->addr, sizeof(dap_chain_addr_t))) {
                 SUM_256_256(l_fee_sum, dap_chain_uint256_from(l_out->header.value), &l_fee_sum);
             } else if (memcmp(&l_owner_addr, &l_out->addr, sizeof(dap_chain_addr_t))) {
                 SUM_256_256(l_outs_sum, dap_chain_uint256_from(l_out->header.value), &l_outs_sum);
             }
         }
-        if (l_type == TX_ITEM_TYPE_OUT_256) {
-            dap_chain_256_tx_out_t *l_out = (dap_chain_256_tx_out_t *)l_list_tmp->data;
+        if (l_type == TX_ITEM_TYPE_OUT) {
+            dap_chain_tx_out_t *l_out = (dap_chain_tx_out_t *)l_list_tmp->data;
             if (!memcmp(&l_stake->addr_fee, &l_out->addr, sizeof(dap_chain_addr_t))) {
                 SUM_256_256(l_fee_sum, l_out->header.value, &l_fee_sum);
             } else if (memcmp(&l_owner_addr, &l_out->addr, sizeof(dap_chain_addr_t))) {