Who can upgrade Squads itself
The section above is the case Squads makes for itself: never leave a privileged authority on one key. The obvious question is what Squads does with its own, and the answer is readable on chain. It is not the same answer on every network it runs on.
On Solana mainnet-beta the program has no upgrade authority at all. Its ProgramData account, Fy3YMJCvwbAXUgUM5b91ucUVA3jYzwWLHL3MwBqKsh8n, carries the upgradeable loader's Option<Pubkey> flag set to zero, which is what the loader writes when an authority is deliberately dropped (Solana docs: deploying programs). Nobody – not Squads Labs, not a multisig, not a council – can replace the code that custodies those treasuries. The header also records when it was frozen: last deployed at slot 302,582,236, 20 November 2024, 18:36:48 UTC, one day after the commit the repository names as its final audited build. Re-read from mainnet-beta on 12 September 2026, the header still names that same slot and still carries the same zero authority flag, so the deployed code is unchanged since that 2024 deploy.
The other two deployments are not frozen. Devnet, which shares the mainnet program ID, was last redeployed on 6 March 2026 and still names an upgrade authority – expected for a test network, and a reminder that a program ID alone tells you nothing about mutability. Eclipse mainnet is the one that matters: eSQDSMLf3qxwHVHeTr9amVAGmZbRLY2rFdSURandt6f retains an upgrade authority at E6PSaQPXCCr2Tu27z1wZmKhAHWGcSNiegoWByX17iGab.
That address is off the ed25519 curve, so it is a program-derived address with no private key behind it rather than a loose wallet; which program derives it cannot be settled from Eclipse's public RPC, whose history no longer reaches the deploy. A DAO custodying on Eclipse is therefore taking a materially different assurance from one custodying on Solana, and Squads' own documentation lists all three deployments side by side without distinguishing them – the README's address list gives mainnet, Devnet and Eclipse as three consecutive lines and says nothing about mutability on any of them (re-read 12 September 2026).
Immutability is a strong guarantee and a hard constraint at once. A frozen program cannot be rug-pulled by an upgrade, and it also cannot be patched: a bug is fixed by publishing a new program ID and asking every treasury to migrate to it – which is exactly the V3-to-V4 move described above, not a hypothetical. It is the opposite design choice to SPL Governance, whose kernel stays upgradeable and routes its own upgrades through a seven-seat Realms council; both are defensible, and the difference is the thing a Solana DAO is choosing between when it picks a custody layer.
Worth reading alongside the code: the company around it has moved. squads.xyz now fronts four products – Altitude, Fuse, Grid and Multisig – under the line “Squads Labs is a financial technology company, not a bank or a digital asset custodian,” and the protocol page is titled “The Autonomous Finance Layer for Stablecoin Banking.” The numbers it leads with are payment numbers rather than custody ones: over 450 teams, more than $15 billion secured and more than $5 billion in stablecoin transfers processed (read 12 September 2026). The DAO multisig is one line of business among several. Because the mainnet program is immutable, that shift cannot reach the deployed code – a case where freezing the contract also froze the product away from its vendor's roadmap.