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.
-
Related: ethereum.stackexchange.com/questions/15747/…– Richard HorrocksCommented Jul 4, 2017 at 10:17
Add a comment
|
1 Answer
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.
-
6Update: Solidity 0.7.0 deprecated the
now
keyword. For contracts ^0.7.0, you must useblock.timestamp
. Commented 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. Commented Dec 25, 2022 at 5:57