Reference
Release history and versioning
How FLIP identifies the current release, preserves legacy releases, and prevents addresses or rules from drifting between versions.
No accepted Testnet release yetPublished Testnet history
Current, legacy, and retired are different states
- Current
- The exact accepted release explicitly selected by the official Testnet service and documentation build. It must match chain, Source A, manifest, addresses, rules, Evidence B and finalized runtime; newest Git time alone cannot make it current.
- Legacy
- A previously accepted immutable release preserved for historical reads and unresolved lifecycle paths. Integrators must use that release’s own addresses, ABI, rules and deployment block; they may not combine it with current values.
- Retired
- A release no longer open for new admission or supported by the current interface. Retirement cannot erase an existing onchain liability, refund, claim or other permissionless terminal path.
- Mainnet
- Chain 4663 has an independent history and cannot inherit a 46630 Testnet row, Source A label, database, key, address or evidence record.
What requires a new release
- Any contract bytecode, constructor/initializer, immutable, proxy implementation or runtime-address change.
- Any rulesVersion, Catalog, PoolKey, Provider, signer set, risk parameter, role, owner, guardian or Timelock binding change included in the release identity.
- Any API/worker/evidence semantic change after Source A, including documentation code or package inputs protected by the accepted build.
- Any re-deployment, database/runtime identity replacement or accepted Evidence B replacement; Evidence B is append-only and cannot be rewritten in place.
Operational state such as balances and finalized head continues to move within a release, but it must be read fresh. A changing balance does not rewrite Source A; a changed code/config identity does require a new release.
Minimum history entry
chainId
release
status: current | legacy | retired
sourceACommit + sourceTreeHash
evidenceBCommit
manifestHash + addressSetHash + rulesVersion
deploymentBlock
acceptanceFinalizedBlock + finalizedHash
activatedAt / supersededAt (when applicable)
support policy and migration statement