17

I was unable to find any relevant documentation for the now keyword within the Solidity documentation, other than its usage in examples. What exactly does the now keyword return, how is it determined and what are the associated gas costs? I assume it is similar to Unix time.

1

1 Answer 1

22

In short now is just an alias for block.timestamp and it is the number of seconds since the Epoch as per documentation.

Beware that this value is set by miners so there is a little potential for a malicious manipulation but general nodes are meant to coordinate.

EDIT (17 Jan 2024): now has been deprecated post version 0.7.0.

Note: In version 0.7.0, the alias now (for block.timestamp) was removed.

2
  • 6
    Update: Solidity 0.7.0 deprecated the now keyword. For contracts ^0.7.0, you must use block.timestamp. Jul 1, 2020 at 16:51
  • It's worth noting that miners can manipulate block.timestamp & the old 'now' keyword. You can't rely on timestamp, previous block number hash, difficulty, etc because miners can exploit this to call your function with parameters that result in them winning / knowing random number outcome.
    – Nerdi.org
    Dec 25, 2022 at 5:57

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.