nLockTime

From Bitcoin Wiki
Revision as of 13:00, 23 September 2019 by Darosior (talk | contribs) (Add more details about the lock time interpretation.)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

This page is a stub. Help by expanding it.

nLockTime is a parameter of a transaction, that, if any input indicates so (by having nSequence not equal to UINT_MAX), mandates a minimal time (specified in either unix time or block height), before which the transaction cannot be accepted into a block. If all inputs in a transaction have nSequence equal to UINT_MAX, then nLockTime is ignored.

Since BIP68, the lock time can either be absolute or relative. Given a transaction,

  • If the most significant bit (1<<31) of the nLockTime field is set (if the lock time is absolute)
    • If nLockTime < 500000000
      • Specifies the block number at which this transaction can be spent
    • Otherwise
      • Specifies the UNIX timestamp at which this transaction can be spent
  • Otherwise (if the lock time is relative)
    • If the 23rd bit (1<<22) is not set
      • The last 16 bits of the nLockTime field specify a relative time in units of 512 seconds. The transaction can only be included in a block if spending_tx_block_time > spent_tx_block_time + nLockTime * 512.
    • Otherwise
      • The last 16 bits of the nLockTime field specify a relative block height before which the transaction can not be included in a block. In other words it can be included if spending_tx_block_height > spent_tx_block_height + nLockTime

See Also