Mainnet activation: 10 September 2026. Released 4 September: config v2.0.6.0, binary v2.0.6. Activation round 32,157,661, about 18:05 UTC.
| Network | Block time now | Supernova |
|---|---|---|
| Testnet | 600ms | Running |
| Devnet | 600ms | Running |
| Mainnet | 6s | Nodes 4 Sep, Act 10 Sep |
| Item | Value |
|---|---|
| Epoch 6439 opens | 20 August, 14:26:20 UTC |
| Activation round 15539530 | 20 August, 14:46:20 UTC |
| Round duration | 6000ms → 600ms at the round |
| Rounds per epoch | 2400 → 24000 |
| Epoch length | 4 hours, unchanged |
| Node action | Upgrade to D2.0.4.0 |
| Compatible services | proxy v1.5.1, notifier v1.4.2, indexer v1.10.3 |
| Release notes | mx-chain-devnet-config D2.0.4.0 ↗ |
| Network | Before | After | Epoch length |
|---|---|---|---|
| Testnet | 1200 rounds of 6000ms | 12000 rounds of 600ms | 2 hours, unchanged |
| Devnet | 2400 rounds of 6000ms | 24000 rounds of 600ms | 4 hours, unchanged |
| Mainnet | 14400 rounds of 6000ms | 144000 rounds of 600ms | 24 hours, unchanged |
Mainnet activation epoch is 2233. The epoch stays 24 hours, matching testnet and devnet, which both kept their length across the change. The activation epoch itself runs about 22 minutes long: 221 rounds of 6 seconds between the epoch opening and the activation round. It opens on the old clock, so those rounds still take 6 seconds each and the epoch absorbs the difference. Every epoch after it is 24 hours. Missed rounds push both boundaries later by minutes.
Between the epoch opening and the activation round, transactions are accepted into the pool and held, not rejected. They execute once the new clock starts. This is planned: it drains the transactions still in flight on the old clock so nothing is half-processed across the change. Devnet used 200 rounds. Mainnet is currently 240, about 22 minutes, and engineering is still calibrating that number because it decides how much existing load can be drained. The exact figure is published next week.
If you submit during that window, expect it to sit in the pool until the new clock starts. Exchanges, bridges, wallets and anything with a retry loop or a submission timeout should know this before the day.
Source: Adrian Dobrita, 21 August.
| Surface | Change | Action |
|---|---|---|
get_block_timestamp()get_block_timestamp_seconds() |
None. Still seconds. | None |
| Timestamp uniqueness | One second can span several blocks | Move time logic to get_block_timestamp_millis() |
| Raw block header field | Seconds → Milliseconds at the Supernova epoch | Factor of 1000 in custom indexers and header parsers |
/blocks and the public API |
None. Seconds on every network. | None |
TransactionWatcher defaults600ms poll, 9s timeout |
Tuned to the new clock | Pass timeoutMilliseconds when awaiting on mainnet before activation |
GetBlockTimestamp and GetBlockTimestampMs are separate, separately metered VM hooks. The node divides on the way to the seconds accessor, so a contract that did not ask for milliseconds does not get them.
if new_ts > last_ts { /* assumes one block, one second */ }
elapsed_secs = now_secs - start_secs // 1s resolution on a 600ms chain
| Type | Unit |
|---|---|
TimestampSeconds, DurationSeconds | Seconds |
TimestampMillis, DurationMillis | Milliseconds |
Timestamps and durations do not mix, so unit errors fail the build rather than the contract.
curl -s "https://testnet-api.multiversx.com/blocks?size=10&shard=1&fields=nonce,timestamp"
Ten blocks span about five seconds, against about a minute on mainnet. Adjacent blocks can carry the same second.
| Testnet | Endpoint |
|---|---|
| API | testnet-api.multiversx.com ↗ |
| Gateway | testnet-gateway.multiversx.com ↗ |
| Explorer | testnet-explorer.multiversx.com ↗ |
| Wallet | testnet-wallet.multiversx.com ↗ |
| Resource | Link |
|---|---|
| Documentation | docs.multiversx.com ↗ |
| JS cookbook | sdk-js cookbook ↗ |
| JS SDK | mx-sdk-js-core ↗ |
| dApp SDK | mx-sdk-dapp ↗ |
| Rust framework | mx-sdk-rs ↗ |
| Contract examples | mx-sdk-rs/contracts/examples ↗ |
| Python SDK | mx-sdk-py ↗ |
| Node releases | mx-chain-go/releases ↗ |
Name the integration you want checked before September in the MultiversX Developers chat ↗, and we will put the right engineer on it.