Testnet resets
What a reset does and how to detect and survive one.
TestnetVerified Oct 15, 2026
What a reset does#
A reset restarts the Testnet from a new genesis. Everything created since the previous genesis is gone:
- All deployed programs and their data accounts.
- All balances return to the genesis allocation; test tokens you claimed disappear.
- All token mints and token accounts are gone; mint addresses from before the reset mean nothing.
- All transaction history starts again from slot 0.
Kyvro's identity is the genesis hash, so unlike an EVM chain ID there is no stable number across a reset: the genesis hash changes, and the old one is history.
Detecting a reset#
Store the genesis hash and compare it on startup. The current genesis hash is A8qzbNkAdT1GsqmyKTifWnTgS7PuqqmniwdsGeaPc5Jo.
const genesis = await connection.getGenesisHash();
if (genesis !== storedGenesisHash) {
// Testnet was reset: clear cached mints, token accounts, balances, activity and indexed data.
}Surviving a reset#
- Deploy from scripts (
anchor deployin a script — see repeatable deploys), never by hand. - Read program IDs from a deployment manifest your scripts write, not from constants in app code.
- Key off-chain database rows by genesis hash, or wipe them when the genesis changes.
- Invalidate wallet caches: token accounts, balances and recent blockhashes from before the reset are all stale.
- Re-claim test tokens from the faucet(opens in a new tab) 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; progress 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.