Testnet resets
What a reset does and how to detect and survive one.
TestnetVerified Sep 27, 2026
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.
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.