∟Data Structure of Bitcoin Raw Transaction Format

This section describes the data structure of a Bitcoin raw transaction format.

A Bitcoin raw transaction format has the following data structure:

Bytes   Name         Description

4       version      Transaction version number; currently version 1. 
                     Programs creating transactions using newer consensus 
                     rules may use higher version numbers.
Varies  tx_in_count  Number of inputs in this transaction.
Varies  tx_in        Transaction inputs. 
Varies  tx_out_count Number of outputs in this transaction.
Varies  tx_out       Transaction outputs. 
4       lock_time    A time (Unix epoch time) or block number. 

The "tx_in" represents a list of transaction inputs in a non-coinbase transaction. See next tutorial on the "tx_in" structure of a coinbase transaction. Each transaction input has the following data structure:

Bytes  Name             Description

36     previous_output  The previous outpoint being spent, 
                        consisting of a 32-byte TXID and a 4-byte output 
                        index number (vout).
Varies script bytes     The number of bytes in the signature script. 
Varies signature script A script-language script which satisfies the 
                        conditions placed in the outpoint’s pubkey script. 
                        Should only contain data pushes; see the signature 
                        script modification warning.
4      sequence         Sequence number. Default for Bitcoin Core and 
                        almost all other programs is 0xffffffff.

The "tx_out" represents a list of transaction outputs. Each transaction output has the following data structure:

Bytes   Name             Description

8       value            Number of satoshis to spend. May be zero; the sum
                         of all outputs may not exceed the sum of satoshis 
                         previously spent to the outpoints provided in the 
                         input section. 
1+      pk_script bytes  Number of bytes in the pubkey script. 
Varies  pk_script        Defines the conditions which must be satisfied to 
                         spend this output.

Table of Contents

 About This Book

 Introduction of Bitcoin

 Bitcoin Blockchain

 Bitcoin Wallet

 Bitcoin Core

 Bitcoin Transaction

 Bitcoin-Qt - Bitcoin Core GUI

 Bitcoin Mining

 Bitcoin Consensus Rules

 Bitcoin Block Data Structure

►Bitcoin Transaction Data Structure

 Data Properties of Bitcoin Transaction

►Data Structure of Bitcoin Raw Transaction Format

 Decode Bitcoin Raw Transaction Format

 Data Structure of Coinbase Transaction

 Calculate Transaction ID

 Bitcoin Blockchain APIs

 Copay - Bitcoin Wallet

 Archived Tutorials

 References

 Full Version in PDF/EPUB