Data Structure

Figure 1: Transaction Data Structure

Figure 1: Transaction Data Structure

Field Description
Version Value of (2) on Bitcoin SV (BSV). Value of (1) on Bitcoin Core (BTC) and Bitcoin Cash (BCH).
Number of Inputs [N] in next field A VarInt value of the number of Inputs that start in the next field
Inputs Concatenated list of Inputs
Number of Outputs [N] in next field A VarInt value of the number of Outputs that start in the next field
Outputs Concatenated list of Outputs
Locktime Overloaded. Refers to either a blockheight or a unix timestamp. If the value is less than 500000000, then it is regarded as a blockheight, otherwise it is regarded as a timestamp. If a value is set to a future blockheight or timestamp, then the Transaction won’t be accepted into a block.

LockTime & Sequence Numbers

In BitcoinSV, if all the Transaction Inputs have their Sequence Number set the maximum UINT (unsigned integer) value of (0xFFFFFFFF), then the Transaction’s Locktime setting is ignored.

In BitcoinSV, the Transaction’s Locktime and Sequence Number can be used to affect the exchange and in-flight modification of transactions outside of the blockchain. These are also referred to as “offline transactions”.

It is important to note that Transaction Locktime and Sequence Numbers are used for a radically different purpose within the Bitcoin Core (BTC) network. I.e. the Replace-by-Fee feature in Bitcoin Core, where a transaction that has already been accepted into the Mempool may be replaced by a subsequent transaction for a different fee before it is included in a block. RBF is not possible on the Bitcoin SV network.

See Bitcoin Core Wiki for more information on RBF.

On this page