Squads v3 Docs
Comment on page


How to create, upgrade, and change the authority of programs within your Squad.
For web3 native teams, the "Programs" section will be a part of the core operations of their Squad and it allows to:
  • Add programs
  • Upgrade Programs
  • Change authority of programs

Create and add programs

Users can add programs to manage and upgrade them directly from their Squad.

Create programs

  1. 1.
    Create and deploy a program using your CLI.

Add programs

  1. 1.
    Navigate to the "Programs" section within your Squad's vault. Then click on "Add Program".
2. Enter the name and address of the program. Click "Next" and verify the transaction in the wallet pop-up.
Add program pop-up
3. Set the program’s upgrade authority to the address provided: copy the program authority update code and paste it into your CLI. The CLI code should be run by the current authority. Then click “Verify authority”.
Add program pop-up
NOTE: If the current authority is managed by a DAO or wallet you may need to set the authority by other means using the provided upgrade authority.
For users who would want to perform the authority transfer in a safer way there is an option to make a Safe Authority Transfer (SAT).
SAT creates a transaction in the Squad, which needs to be signed by both Squad's Vault PDA and the current authority holder.
To perform a Safe Authority Transfer (SAT):
  1. 1.
    Add your CLI wallet to the Squad. Check the Owners and Setting page for more info on members addition.
  2. 2.
    Click on the "Create SAT" button.
  3. 3.
    Enter a description (optional) and run a transaction inside your Squad.
  4. 4.
    Once the transaction meets the confirmation threshold, execute it with your CLI wallet, which you added into your Squad.
  5. 5.
    Once the transaction is executed, your program authority will be transferred.
Safe Authority Transfer (SAT)

Upgrade a program

Once the program is added to a Squad it can be upgraded straight from your Squad.
To upgrade a program:
  1. 1.
    Deploy your upgrade to the buffer using the command below. (For Rust)
solana program write-buffer <PROGRAM_FILEPATH>
For more information about writing intermediary buffer accounts refer to the link: https://docs.solana.com/cli/deploy-a-program#using-an-intermediary-buffer-account
2. Click on the program from the list and then click on the "Add upgrade" button.
3. Insert the details of the upgrade: name, buffer, and spill address, then click "Next" and approve the transaction in the wallet pop-up.
Program upgrade pop-up
4. Set the authority of the buffer to the provided address by copying a code in your CLI. Then click “Verify authority”.
Program upgrade pop-up
5. Click on the "Upgrade" button. A transaction will be created, after it meets the confirmation threshold and gets executed, a program upgrade will be deployed.
Using actions created by Cardinal, you can automate the deployment of program upgrades directly from Github. Using those actions you can automatically build code, deploy it to a buffer and create a program upgrade transaction inside your Squad every time you make code changes to your program.
For more details check:
Squads users can also use Nosana to create an automated deployment pipeline and streamline their deployment process.
For more details check:

Remove a program from UI

Users can remove programs that they no longer use from the UI and claim back the rent in SOL.
To do this:
  1. 1.
    Navigate to the programs list and click on the "Bin" icon next to the program you want to delete.
  2. 2.
    Insert a description (optional) and launch a transaction.
  3. 3.
    A program will be deleted upon transaction execution.
This action does not affect the program or the buffer, it will only remove the program from the UI. It will also return the PDA rent (in SOL) of this account to your vault.

Withdraw program upgrade authority

Program authority can be changed directly from a Squad after a program was added to any other address if needed.
To do this:
  1. 1.
    Click on the program from the programs list.
  2. 2.
    Click on the "Change authority" button.
  3. 3.
    Insert a new program authority address and initiate a transaction.
  4. 4.
    Program authority will be changed upon transaction execution.