Transaction Data
A bitcoin transaction is just a bunch of data that describes the movement of bitcoins.
It takes in inputs, and creates new outputs.
Structure
01000000017967a5185e907a25225574544c31f7b059c1a191d65b53dcc1554d339c4f9efc010000006a47304402206a2eb16b7b92051d0fa38c133e67684ed064effada1d7f925c842da401d4f22702201f196b10e6e4b4a9fff948e5c5d71ec5da53e90529c8dbd122bff2b1d21dc8a90121039b7bcd0824b9a9164f7ba098408e63e5b7e3cf90835cceb19868f54f8961a825ffffffff014baf2100000000001976a914db4d1141d0048b1ed15839d0b7a4c488cd368b0e88ac00000000
Transaction: c1b4e695098210a31fe02abffe9005cffc051bbe86ff33e173155bcbdc5821e3
Fields
Field | Data | Size | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
01000000 ⟲
|
4 bytes | Which version of transaction data structure we’re using. | ||||||||||||||||||||||||
Input Count |
01
|
Variable | Indicates the upcoming number of inputs. | ||||||||||||||||||||||||
Input(s) |
|
||||||||||||||||||||||||||
Output Count |
01
|
Variable | Indicates the upcoming number of outputs. | Output(s) |
|
||||||||||||||||||||||
Locktime |
00000000 ⟲
|
4 bytes | Set a minimum block height or Unix time that this transaction can be included in. |
- All of the data in a transaction is in hexadecimal.
- The following icon indicates that the data is in reverse byte order: ⟲
Diagram
A transaction is basically a series of inputs and a series of outputs.

In further detail; the transaction data tells you how to unlock existing packages of bitcoins (from previous transactions), and how to lock them up again in to new packages.
Notes
A raw transaction is sometimes called a “serialized transaction”, because it’s just a bunch of individual pieces of data zipped up in to one string of data.