These docs are a Work in Progress

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
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)27
valueIntTransaction value
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
tagStringA searchable User-defined tag27
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
hashStringHash of individual transaction81
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
branchTransactionStringTransaction being approved81
trunkTransactionStringTransaction being approved81
currentIndexIntTransaction index in Bundle
lastIndexIntIndex of last Transaction in Bundle
timestampIntTimestamp (not-enforced, can be arbitrary)27
attachmentTimestampIntTimestamp after POW
attachmentTimestampLowerBoundIntLower Bound of timestamp
attachmentTimestampUpperBoundIntUpper Bound of timestamp
Edit on GitHub