How programs work
When you transfer a program’s upgrade authority to your Squad, that program can only be upgraded through the multisig approval process. The Programs tab provides an interface to manage the full lifecycle: adding programs, initiating upgrades, and changing authorities when needed. Your Squad has two onchain addresses, visible on the Settings page. When transferring any authority to your Squad, always use the vault address (labeled Squads Vault in Settings). Your Squad executes transactions and signs from this address.Add a program to your Squad
1
Create and deploy your program
Create and deploy your program using the Solana CLI.
2
Open the Programs tab
In the sidebar, open Developers and select Programs.
3
Add the program
Select Add program. Enter the Program name and Program ID.
4
Confirm the program
Select Next. Squads checks onchain that the address is an upgradeable program and adds it to your list. No transaction is created at this step. If you are not signed in, you are asked to sign in first.
5
Transfer upgrade authority
Transfer the program’s upgrade authority to the vault address shown in the UI. Confirm it matches the Squads Vault address on your Settings page before proceeding. You can transfer using one of these methods:
- Copy the address and transfer authority from your CLI
- Run the provided CLI command if your CLI tool holds the authority
- Use Safe Authority Transfer (SAT) for an atomic two-party transfer
6
Verify
Once the transfer is done, select Verify. The app confirms that the program’s onchain upgrade authority matches your vault.
Safe Authority Transfer (SAT)
SAT creates a transaction that requires signatures from both your Squad and the current authority holder, ensuring the transfer completes atomically. Because the vault PDA must co-sign the transfer, SAT prevents the wrong address from being used.1
Create the SAT
Select Create SAT, add a note (optional), and select Initiate. The transaction appears in your Transactions page.
2
Add your CLI wallet as a member
Add your CLI wallet to the Squad on the Members page.
3
Execute with your CLI wallet
Once the transaction meets your Squad’s threshold, execute it with your CLI wallet. The program authority transfers to your Squad upon execution.
If the current authority is managed by a DAO or external wallet, transfer authority using the standard CLI method instead of SAT.
Upgrade a program
1
Deploy the upgrade to a buffer account
Deploy your upgrade to a buffer account using the Solana CLI:
2
Start the upgrade
In the Programs tab, select your program, then select Add upgrade in the Upgrades section. Enter the upgrade details: Upgrade name, Buffer address, Buffer refund (defaults to your vault address if left empty), and Commit link (optional). Select Next. No transaction is created at this step.
3
Set the buffer authority
Set the buffer authority to the address shown by running the provided CLI command. The address shown is your vault address. The command has this form, with your buffer address and vault address filled in:
4
Verify and initiate
Select Verify to confirm the buffer authority was set correctly. Then open the upgrade from the Upgrades list and select Upgrade. In the Execute upgrade dialog, add a note (optional) and select Initiate to create the upgrade transaction.
5
Approve and execute
Once the transaction is approved and executed, the upgrade deploys.
Extend program size
If the new binary is larger than the currently deployed program, extend the program size before upgrading. You can do this in the app or with the CLI. In the app. Open the upgrade from the Upgrades list. When the buffer does not fit, the upgrade shows Program account too small for this upgrade with the sizes, and Extend size takes the place of Upgrade. Select Extend size, review the Extend program size dialog (Short by, Added, New size, and Rent paid by your wallet), then select Extend. Your connected wallet signs and pays for this transaction. It is not a proposal: the program account grows as soon as the transaction confirms. With the CLI.<ADDITIONAL_BYTES> must be at least 10,240 (10 KiB), unless less space remains before the program’s maximum size.
An immutable program cannot be extended or upgraded.
Transfer program authority
1
Open the Programs tab
In the sidebar, open Developers and select Programs.
2
Select the program
Select the program whose authority you want to transfer.
3
Initiate authority transfer
Select Transfer next to Upgrade authority. Enter the New authority address.
4
Approve the transaction
Add a note (optional), select Initiate, and approve the transaction in your wallet. The transaction appears in your Transactions page.
5
Execute the transfer
Once the transaction meets your Squad’s threshold, execute it. The program authority transfers to the new address upon execution.
Automate upgrades with GitHub Actions
The Squads GitHub Action creates the upgrade transaction in your Squad from CI/CD pipelines. It takes a buffer that is already written onchain, so build the program and write the buffer in earlier steps of your pipeline. After the transaction is created, members can review the upgrade in the app and verify the onchain buffer matches the source code using verifiable builds. Setup instructions: github.com/Squads-Protocol/squads-v4-program-upgradeBest practices
- Verify the address before every authority transfer. Open Settings and confirm the address you are using matches Squads Vault, not Multisig account. Setting authority to the Multisig account address permanently locks the program.
- Use SAT when both parties can sign. SAT requires your vault PDA to co-sign the transfer, which prevents the wrong address from being used.
- Verify upgrades before approving. Compare the onchain buffer against expected source code using verifiable builds.
- Test on devnet first. Before transferring mainnet program authority, run the full workflow on devnet to confirm you are using the correct address and process.
Troubleshooting
Troubleshooting
FAQ
FAQ
Can I transfer authority back out of my Squad?Yes. Select Transfer next to Upgrade authority on the program page to transfer the program’s upgrade authority to any other address. This creates a transaction that your Squad must approve and execute.Does extending a program require multisig approval?No. Extending is permissionless. Extend size in the app sends a transaction from your connected wallet, and the
solana program extend command can be run from any wallet, regardless of who holds the upgrade authority.