Sepolia

Admin and upgrades

What the admin Timelock can change, what stays fixed, and how pauses work.

TL;DR

  • Most of the system can't be changed: the token and the Squeeks aren't upgradeable, and the $SQK cap, premint, Squeek supply, maximum level and cooldown table are permanent.
  • Only Core, Mining and Staking can be upgraded, and only by the admin through a Timelock: each change is scheduled publicly onchain and applies only after a delay.
  • Pauses are narrow: none of them blocks claiming rewards, withdrawing Squeeks, or unstaking $SQK from Staking.
  • Every upgrade is public and delayed before it applies. The delay gives notice rather than reviewing the new code, so upgraded contracts still rely on the admin. On the Sepolia testnet the delay is a short testing setting.

What stays fixed?

The token (SqueekToken) isn't upgradeable: its lifetime cap and premint are fixed, and it binds one Mining contract permanently, which mints only to itself. Mining, not the token, checks work, processes rounds, and applies the issuance schedule.

SqueekNFT isn't upgradeable either. Its 9,999-Squeek supply, the split between IDs 1–8,888 and the protocol's 8,889–9,999, maximum level and merge cooldowns are fixed at construction. The admin can set the launch contract, which receives IDs 1–8,888 at issuance, only while issuance is paused and before any NFT exists, and can open or close merges at any time.

Token binds once to Mining, and Mining binds once to Staking; neither binding can change. The NFT's launch binding becomes fixed once NFT issuance starts. The admin starts Mining once, after Staking is bound.

Pauses are narrower than upgrades. The Core Guardian can stop settlement, NFT issuance, and new Staking intake; the Mining Guardian can stop issuance. Claims of funded rewards, Squeek withdrawals, and unstaking of mature $SQK continue through every pause.

What can an upgrade change?

Only Core, Mining and Staking can be upgraded, and only by the admin through its Timelock. Each upgrade is scheduled publicly onchain and can be executed only after the delay, so it's visible before it applies. Nothing else can change their code.

An upgrade can change how Core records work, how Mining issues $SQK within the cap, and how Staking holds deposits and calculates power, rewards, and exit fees.

Who holds these powers on Sepolia?

On Sepolia, the admin Timelock owns the Core, Mining, and Staking ProxyAdmin contracts, is the admin address of Mining, Staking and the NFT, and is the token's Mining binding authority. Its delay is a short testing setting. Operational addresses lists the proposers, the exact delay, the Guardian, the Reporter, and the reserve recipient.

These are testnet settings for testing only, not a mainnet policy. Before relying on any deployment:

  • Read owner() on each ProxyAdmin and getMinDelay() on the timelock; a proxy's code can change.
  • Watch the timelock's CallScheduled events, which announce an upgrade or binding before it can execute.
  • After an Upgraded event, treat the new implementation as unknown until its runtime hash, version and storage layout match a reviewed record.
  • SqueekToken and SqueekNFT have no proxy or owner; read their admin-set bindings and flags rather than assuming them.

Technical detail: admin roles

The admin is a Timelock (OpenZeppelin TimelockController). Its only proposer and canceller is the admin Safe, the team's multisig; once a change's delay has passed, anyone can execute it. The admin owns the Core, Mining, and Staking ProxyAdmin contracts, is the address governance() returns in Mining, Staking, and the NFT, and is the token's miningBindingAuthority.