# PoS upgrades
| Year | Upgrade |
| -------------- | ------- |
| September 2024 | [Ahmedabad hard fork](https://forum.polygon.technology/t/pip-37-ahmedabad-hardfork/13885)|
| March 2024 | [Napoli hard fork](https://forum.polygon.technology/t/pip-33-napoli-upgrade/13405) |
| November 2023 | [Agra hard fork](https://forum.polygon.technology/t/pip-28-agra-hardfork/13067) |
| October 2023 | [Aalborg hard fork](https://forum.polygon.technology/t/aalborg-hardfork-introducing-faster-deterministic-finality-with-milestones-action-required/12983) |
| August 2023 | [Indore hard fork](https://forum.polygon.technology/t/pip-13-indore-hard-fork/12272) |
| January 2023 | [Delhi hard fork](https://forum.polygon.technology/t/pip-7-delhi-hardfork/10904) |
| March 2022 | [Heimdall March 2022 hard fork](https://forum.polygon.technology/t/heimdall-v0-2-8-includes-hardfork/2675) |
| January 2022 | [London hard fork](https://forum.polygon.technology/t/eip1559-london-fork-on-mainnet/549)|
| May 2021 | [Berlin hard fork](https://forum.polygon.technology/t/berlin-fork-upgrade-matic-mainnet/8400) |
# Points to cover
1. Year
2. Name of the Upgrade
3. Date, Time (in UTC)
4. Block number
5. Summary
---
This page provides a timeline of key network upgrades and hard forks on the Polygon PoS network. Most upgrades take place on the execution layer, namely Bor, while changes to the consensus layer, Heimdall, are less frequent. Each hard fork is listed with its respective network module (Bor/Heimdall), and a summary of the updates it introduced to the network.
In simple terms, a hard fork represents a network upgrade that fundamentally alters the chain protocol in some way, often rendering nodes running the old software incompatible with the upgraded network. These forks are crucial for integrating new features, enhancing security, and optimizing network performance, requiring validators and participants to adopt the latest protocol version.
!!! info "Polygon PoS dual-chain architecture"
Polygon PoS operates using a dual-chain architecture that consists of the *Bor* and *Heimdall* network modules. Learn more about this in the [architecture section](https://docs.polygon.technology/pos/architecture/overview/).
## 2024
### Ahmedabad
Date: 26 September 2024, 12:42:49 AM +UTC
Block number: [62,278,656](https://polygonscan.com/block/62278656)
Network module: Bor
The Ahmedabad hard fork includes three Polygon Improvement Proposals:
- PIP-30: Raises the max code size from 24KB to 32KB, enabling dApp developers to deploy more complex contracts without needing alternative, less efficient methods.
- PIP-36: Fixes a gas pricing issue after Ethereum’s Berlin hardfork, which locked certain POL (formerly MATIC) transactions in the plasma bridge, and allows replaying failed state syncs, improving the plasma bridge's observability.
- PIP-45: Updates the token symbol on the PoS chain following the [POL migration](https://polygon.technology/blog/matic-to-pol-migration-is-now-live-everything-you-need-to-know), changing MATIC to POL and WMATIC to WPOL.
### Napoli
Date: 20 March 2024, 11:29:37 AM +UTC
Block number: [54,876,000](https://polygonscan.com/block/54,876,000)
Network module: Bor
The Napoli hard fork covered the following updates:
- PIP-16: Enhances parallelization by allowing validators to include transaction dependencies in block headers, eliminating the need for nodes to recompute them. This improves execution efficiency and overall network health.
- PIP-27: Adds a precompile for the secp256r1 elliptic curve, enabling gas-efficient ECDSA signature verification on Polygon PoS, and support for account abstraction by allowing developers to integrate secp256r1.
- PIP-31: Introduces new EVM opcodes to Polygon PoS, including `TLOAD` and `TSTORE` for transient storage, `MLOAD` and `MSTORE` for efficient memory copying, and updates to the `SELFDESTRUCT` opcode as part of Ethereum’s Cancun upgrade.
## 2023
### Agra
Date: 29 November 2023, 06:59:59 AM +UTC
Block number: [50,523,000](https://polygonscan.com/block/50,523,000)
Network module: Bor
The Agra hard fork covered the following updates:
- PIP-20: Adds event emission to the state-receiver genesis contract on Polygon PoS which allows tracking the success of stateIDs in state-sync transactions and simplifies mapping between Ethereum and Bor transaction hashes using the Heimdall API.
- PIP-23: Brings the Ethereum Shanghai upgrade features to Polygon PoS. Learn more about the specfications on [Polygon forum](https://forum.polygon.technology/t/pip-23-proposal-to-activate-ethereum-shanghai-features/13065#specification-6).
- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651): Starts the COINBASE address warm
- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855): New PUSH0 instruction
- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860): Limit and meter initcode
- [EIP-6049](https://eips.ethereum.org/EIPS/eip-6049): Deprecate SELFDESTRUCT
- PIP-24: Modifies the EIP-1559 burn recipient on the Polygon PoS network, switching it to a new contract to prepare for Plasma bridge upgrades.
### Aalborg
Date: 13 October 2023, 12:21:25 +UTC
Block number: [15,950,759](https://tendermint-api.polygon.technology/block?height=15950759)
Network module: Heimdall
The Aalborg hard fork covered the following updates:
- PIP-11: Introduces milestones to enable faster and more reliable finality on Polygon PoS. By combining Tendermint consensus with a new fork choice rule, this mechanism reduces the chances of chain reorganizations, providing quicker finality and improving the overall user experience.
### Indore
Date: 11 July 2023, 03:19:42 AM +UTC
Block number: [44,934,656](https://polygonscan.com/block/44,934,656)
Network module: Bor
The Indore hard fork covered the following updates:
- Block-STM: Enables parallel transaction execution on the PoS chain. Introduces the ability to resolve transaction conflicts with dynamic transaction scheduling and multiple versions of modified states for concurrent access by multiple transactions, optimizing chain performance.
- PIP-12: Introduces the `stateSyncConfirmationDelay` parameter, which adjusts state sync events by subtracting 128 seconds from the current block’s timestamp, ensuring consistency across the network during reorgs. It also adds `eth_callWithState`, enabling EVM calls on the stateDB during the Bor consensus to improve state sync handling.
### Delhi
Date: 17 January 2023, 10:45:02 AM +UTC
Block number: [38,189,056](https://polygonscan.com/block/38,189,056)
Network module: Bor
The Delhi hard fork covered the following updates:
- PIP-5: Reduces the sprint length from 64 to 16 blocks, decreasing the block production time from 128 seconds to 32 seconds. This change reduces reorg frequency and depth, improving network stability.
- PIP-6: Increases the `BaseFeeChangeDenominator` from 8 to 16, reducing the rate of base fee adjustments from 12.5% to 6.25%. This change smoothens fee increases or decreases when gas usage deviates from the target gas limit.
## 2022
### Heimdall March 2022
Date: 18 March 2022, 10:29:42 AM +UTC
Block number: [8,664,000](https://tendermint-api.polygon.technology/block?height=8664000)
Network module: Heimdall
This hard fork covered the following updates:
- Backfilling spans: Focuses on backfilling spans into the Heimdall database to ensure smooth and normal span creation moving forward.
### London
Date: 18 January 2022, 02:48:02 AM +UTC
Block number: [23,850,000](https://polygonscan.com/block/23,850,000)
Network module: Bor
The London hard fork covered the following updates:
- Base fee and burning mechanism: Polygon PoS mainnet implemented EIP-1559 with a burn mechanism that transfers base fee MATIC tokens from transactions to a burn contract on the PoS chain (L2). The accumulated base fees are then withdrawn and ultimately burned on the Ethereum root chain (L1) to ensure deflationary pressure on the MATIC supply. This approach aligns with Ethereum’s EIP-1559 while adapting it for Polygon’s multi-chain architecture, enhancing transaction efficiency and further reducing its already low gas fees.
## 2021
### Berlin
Date: 21 May 2021, 06:19:37 AM +UTC
Block number: [14,750,000](https://polygonscan.com/block/14750000)
Network module: Bor
The Berlin hard fork covered the following updates:
- EIP-2565: Lowered the gas cost for transactions that involve modular exponentiation, improving cost-efficiency for various cryptographic operations.
- EIP-2718: Established a framework for supporting new transaction types by introducing "envelope transactions", ensuring backward compatibility between new and existing transaction types.
- EIP-2929: Increased gas costs for certain operations to mitigate the risk of denial-of-service (DoS) attacks.
- EIP-2930: Introduced a new transaction type, namely *access lists*, that allow explicit inclusion of accounts and storage keys that the transaction will access during execution. This improves the predictability of transaction costs, resulting in better gas fee optimization.