UTXOs – Earlybirds Invest https://earlybirdsinvest.com Latest Crypto News Sat, 26 Jul 2025 03:38:00 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.7 https://i0.wp.com/earlybirdsinvest.com/wp-content/uploads/2024/12/cropped-New-Project-2024-12-17T235703.455.png?fit=32%2C32&ssl=1 UTXOs – Earlybirds Invest https://earlybirdsinvest.com 32 32 240146708 Chain-State UTXOS Decoding: TXID, Block Height, and Balance Improper https://earlybirdsinvest.com/chain-state-utxos-decoding-txid-block-height-and-balance-improper/ https://earlybirdsinvest.com/chain-state-utxos-decoding-txid-block-height-and-balance-improper/#respond Sat, 26 Jul 2025 03:38:00 +0000 https://earlybirdsinvest.com/chain-state-utxos-decoding-txid-block-height-and-balance-improper/

I’m trying to make a rust tool set to read UTXOS directly from the chain state. I mostly follow Bitcoin sources in letters (at least I think so).

I have decode_varint

pub fn decode_varint(data: &(u8)) -> Option<(u32, usize)> {
    let mut n: u32 = 0;
    let mut shift = 0;

    for (i, &byte) in data.iter().enumerate().take(5) {
        let part = (byte & 0x7F) as u32;
        n |= part << shift;

        if byte & 0x80 == 0 {
            return Some((n, i + 1));
        }

        // Bitcoin adds this quirk:
        n = n.wrapping_add(1 << shift);
        shift += 7;
    }

    None
}

I have decompress_amount

pub fn decompress_amount(x: u64) -> u64 {
    if x == 0 {
        return 0;
    }
    let mut x = x - 1;
    let e = x % 10;
    x /= 10;
    let mut n;
    if e < 9 {
        let d = (x % 9) + 1;
        x /= 9;
        n = x * 10 + d;
    } else {
        n = x + 1;
    }
    for _ in 0..e {
        n *= 10;
    }
    n
}

I’m sure I get only UTXO entries

pub fn decode_utxo_key(mut key: &(u8)) -> Option<(Vec, u32)> {
    if key.is_empty() || key(0) != b'C' {
        return None;
    }
    key = &key(1..);
    let txid = key.get(..32)?.to_vec();
    key = &key(32..);
    let (vout, _) = decode_varint(key)?;
    Some((txid, vout as u32))
}

But for some reason, my key shows a TXID that is different from the block height.

Key: `byteskey((67, 0, 0, 0, 0, 236, 58, 152, 94, 229, 61, 50, 239, 22, 75, 88, 246, 154, 181, 7, 146, 209, 249, 113, 25, 180, 120, 10, 150, 150, 112, 118, 209, 0), 98, 112, 112, 118, 209, 095, 112 43, 211, 164, 127, 45, 124, 28, 164, 166, 210, 240, 182, 238, 220, 41, 24, 211, 153, 185, 205, 199))))

TXID: f349b3a497e29738638c27654d3125deb8d90702dc51ab3bc993370900000000

Block 684,608 TXID

I’m getting the XOR obfuscation key:

    let read_opts = ReadOptions::new();
    let xor_iter = db.iter(read_opts);
    let mut obfuscation_key: Vec = Vec::new();

    for (key, value) in xor_iter {
        if key.0.starts_with(&(0x0e)) {
            obfuscation_key = value;
            break;
        }
    }

This returns a decoded value byte as follows: (52, 148, 23, 67, 104 , 115, 134, 222, 130, 10, 78, 153, 93, 115, 228, 159, 196, 86, 17, 179, 224, 72, 222, 228, 185, 255, 26, 46, 229, 73, 140, 125, 129, 241, 246, 106, 170, 3, 94, 35)

But 52 is clearly not the correct byte for block 684,608.

What’s missing?

]]>
https://earlybirdsinvest.com/chain-state-utxos-decoding-txid-block-height-and-balance-improper/feed/ 0 49709
How to create transaction input from UTXO’s TX ID? https://earlybirdsinvest.com/how-to-create-transaction-input-from-utxos-tx-id/ https://earlybirdsinvest.com/how-to-create-transaction-input-from-utxos-tx-id/#respond Tue, 17 Jun 2025 23:17:58 +0000 https://earlybirdsinvest.com/how-to-create-transaction-input-from-utxos-tx-id/ https://github.com/karask/python-bitcoin-utils/blob/master/examples/spend_p2sh_transaction.py I’m sorry this isn’t that good. I would like to ask: Where can I create this “Transaction input from UTXO’s TX ID”? This is for Bitcoin Utxo. So are you using a Bitcoin node? vscode? Python in gitpods? Just want to know where you can […]]]> I’m in the middle working on this github -> https://github.com/karask/python-bitcoin-utils/blob/master/examples/spend_p2sh_transaction.py

I’m sorry this isn’t that good. I would like to ask:

  1. Where can I create this “Transaction input from UTXO’s TX ID”? This is for Bitcoin Utxo.

So are you using a Bitcoin node? vscode? Python in gitpods? Just want to know where you can do this and you will be able to provide the TXID along with the transaction value. For example, in the following snapshot:

Enter the image description here

Do you care about leading me? Please…Thank you very much.

]]>
https://earlybirdsinvest.com/how-to-create-transaction-input-from-utxos-tx-id/feed/ 0 42622