Ethereum Mainnet blocks #0 (genesis block) and #1 (first mined block):

> new Date(eth.getBlock(0).timestamp * 1000).toUTCString() "Thu, 01 Jan 1970 00:00:00 UTC" > new Date(eth.getBlock(1).timestamp * 1000).toUTCString() "Thu, 30 Jul 2015 15:26:28 UTC"

0.1 #200,000 Ice Age

Source: u/accape's statement "There is also the very first HF shortly after genesis which introduced the ice age (which went into effect at block 200,000)."

And from Ethereum Protocol Update 1, dated Aug 4 2015, "starting from block 200,000 (very roughly 17 days from now), the difficulty will undergo an exponential increase which will only become noticeable in about a year".

> new Date(eth.getBlock(200000).timestamp * 1000).toUTCString() "Mon, 07 Sep 2015 21:33:09 UTC"

1. #1,150,000 Homestead

Source What was the first block mined with Homestead?

> new Date(eth.getBlock(1150000).timestamp * 1000).toUTCString() "Mon, 14 Mar 2016 18:49:53 UTC"

Note that https://etherchain.org/block/1150000 reports 2016-03-14 19:49:53 and https://etherscan.io/block/1150000 reports Mar-14-2016 06:49:53 PM +UTC

See also EIP 606: Hardfork Meta: Homestead

2. #1,920,000 DAO

Source Give a summary of the fork state changes in block 1920000.

> new Date(eth.getBlock(1920000).timestamp * 1000).toUTCString() "Wed, 20 Jul 2016 13:20:40 UTC"

Note that this hard fork produced the Ethereum Classic chain which is the original un-forked chain while the forked chain is the main Ethereum chain. If you owned ethers (ETH) prior to this fork, you will own the same number of Classic ethers (ETC) as well as regular ethers (ETH).

See also EIP 779: Hardfork Meta: DAO Fork

3. #2,463,000 Tangerine Whistle

Source FAQ: Upcoming Ethereum Hard Fork, dated Oct 18 2016.

> new Date(eth.getBlock(2463000).timestamp * 1000).toUTCString() "Tue, 18 Oct 2016 13:19:31 UTC"

The main changes to the protocol were:

See also EIP 608: Hardfork Meta: Tangerine Whistle

The software versions were:

Ethereum Wallet/Mist 0.8.6

geth 1.4.18

1.4.18 Parity 1.3.8

EthereumJ 1.3.6

4. #2,675,000 Spurious Dragon

Source Hard Fork No. 4: Spurious Dragon, dated Nov 18 2016.

> new Date(eth.getBlock(2675000).timestamp * 1000).toUTCString() "Tue, 22 Nov 2016 16:15:44 UTC"

The main changes to the protocol were:

EIP 155: Replay attack protection - to prevent transactions from the main Ethereum chain being replayed on the Classic chain.

EIP 160: EXP cost increase - "making it more difficult to slow down the network via computationally expensive contract operations"

EIP 161: State trie clearing - "enabling 'debloat' of the blockchain state" to clean up the 20 million empty accounts created in the Sep and Oct 2016 Ethereum network attack.

EIP 170: Contract code size limit - "changes the maximum code size that a contract on the blockchain can have"

See also EIP 607: Hardfork Meta: Spurious Dragon

The software versions were:

Ethereum Wallet/Mist 0.8.7

geth 1.5.2

1.5.2 Parity 1.4.4

5. #4,370,000 Byzantium

Source Byzantium HF Announcement, dated Oct 12 2017.

> new Date(eth.getBlock(4370000).timestamp * 1000).toUTCString() "Mon, 16 Oct 2017 05:22:11 UTC"

The main changes to the protocol were:

See also EIP 609: Hardfork Meta: Byzantium

The software versions were:

Ethereum Wallet/Mist 0.9.1

geth 1.7.2

1.7.2 Parity 1.7.6 (to be released)

Ethereum Harmony 2.1.56

6. #7,280,000 Constantinople/St. Petersburg

Source:

> new Date(eth.getBlock(7080000).timestamp * 1000).toUTCString() "Thu, 17 Jan 2019 05:57:13 UTC"

The main changes to the protocol are:

The software versions are:

geth 1.8.23

Parity v2.2.10-stable

Harmony v2.3 Build 74

Pantheon v0.9.1

EthereumJS v2.6.0

Ethereum Wallet/Mist v0.11.1

7. #9,069,000 Istanbul

Source Ethereum Istanbul Upgrade Announcement, dated Nov 20 2019

> new Date(eth.getBlock(9069000).timestamp * 1000).toUTCString() "Sun, 08 Dec 2019 00:25:09 UTC"

The main changes to the protocol as listed in EIP 1679: Hardfork Meta: Istanbul were:

EIP-152: Add Blake2 compression function F precompile

EIP-1108: Reduce alt_bn128 precompile gas costs

EIP-1344: Add ChainID opcode

EIP-1884: Repricing for trie-size-dependent opcodes

EIP-2028: Calldata gas cost reduction

EIP-2200: Rebalance net-metered SSTORE gas cost with consideration of SLOAD gas cost change

The software versions are: