In the transaction trytes there are these fields:

  • timestamp (9 trytes);
  • [...]
  • attachment timestamp (9 trytes);
  • attachment timestamp lower bound (9 trytes);
  • attachment timestamp upper bound (9 trytes);

The timestamp represents the moment of creation of the transaction (when the user inserts address, value, obsolete tag and indexes).

To get the nonce and the transaction hash, tag, attachment timestamp (and its bounds) are not hashed with the rest of the transaction: is this correct?

This means that the attachment timestamp is not "encoded" in the transaction hash. Is this correct? Also, are lower/upper bounds still unused?


1 Answer 1


You have to distinguish between bundle hash and transaction hash here.

  • The attachment timestamp is not encoded in the bundle hash (which is signed by the spending transactions). Otherwise it would not be possible to reattach a transaction (with updated attachment timestamp) without double-spending. This is also true for the nonce, the message/signature, the trunk/branch transaction and a few other fields.

  • However, all fields are encoded in the transaction hash. (The nonce is altered until the transaction hash has a sufficient number of zeroes). When you reattach a transaction bundle, it will get the same bundle hash, but the transactions will have different transaction hashes (because the attachment timestamp and the trunk/branch transactions changed).

Lower and upper bounds are still unused.

  • Ok, I didn't think about the reattachment, it makes a little more sense now. And I also had trouble understanding the transaction hash computation. Thanks! Commented May 7, 2018 at 7:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.