Skip to content
Zroarus
Documentation menu

Testnet resets

What a reset does and how to detect and survive one.

TestnetVerified Sep 27, 2026
On this page

What a reset does#

A reset restarts the Testnet from a new genesis block. Everything created since the previous genesis is gone:

  • All deployed contracts and their storage.
  • All balances return to the genesis allocation; test tokens you claimed disappear.
  • All nonces return to zero, and the chain history starts again from block 0.

The chain ID stays 305583. Contracts deployed with CREATE2 and a fixed salt can come back at the same address once redeployed.

Detecting a reset#

The genesis block hash changes on every reset. Store it and compare it on startup. The current genesis hash is 0xe7b741e632be03839586aa9278113e477f2618a9254a7a60bbe28aee7b3e3cb7.

viem
const genesis = await publicClient.getBlock({ blockNumber: 0n });
if (genesis.hash !== storedGenesisHash) {
  // Testnet was reset: clear cached tokens, nonces, NFTs, activity and indexed data for chain 305583.
}

Surviving a reset#

  • Deploy from scripts (Foundry scripts, Hardhat scripts), never by hand.
  • Read contract addresses from a deployment manifest your scripts write, not from constants in app code.
  • Key off-chain database rows by chain ID and genesis hash, or wipe them when the genesis changes.
  • Invalidate wallet caches: nonces restart at zero after a reset.
  • Re-claim test tokens from the faucet after a reset.

Notice and announcements#

A formal reset policy (how much notice teams get and where the new genesis hash is announced) has not been published yet; it is tracked on the Road to Mainnet. Planned maintenance is announced on the status page and in updates.

Something wrong or missing on this page? Send developer feedback.