The Anatomy of a Transaction

A transaction in IOTA consists of 2673 trytes (if encoded). When you decode the trytes you get a transaction object which has the following values:
FieldTypeDescriptionLength
signatureMessageFragmentStringIn case there is a spent input, the signature of the private key is stored here. If no signature is required, it is empty (all 9's) and can be used for storing the message value when making a transfer. More to that later.2187
addressStringIn case this is an output, then this is the address of the recipient. In case it is an input, then it is the address of the input which is used to send the tokens from (i.e. address generated from the private key)81
valueIntTransaction value27
obsoleteTagStringUser-defined tag (removed soon)27
timestampIntTimestamp (not-enforced, can be arbitrary)9
currentIndexIntTransaction index in Bundle9
lastIndexIntIndex of last Transaction in Bundle9
bundleStringHash of the current Bundle, which is used for grouping transactions of the bundle together. With the bundle hash you can identify transactions which were in the same bundle.81
branchTransactionStringTransaction being approved81
trunkTransactionStringTransaction being approved81
attachmentTagStringUser-defined tag27
attachmentTimestampIntTimestamp after POW9
attachmentTimestampLowerBoundIntLower Bound of timestamp9
attachmentTimestampUpperBoundIntUpper Bound of timestamp9
nonceStringThe nonce is required for the transaction to be accepted by the network. It is generated by doing Proof of Work (either in IRI via the attachToTangle API call, or an external library).27