Squads Docs
Squads
Squads
  • Squads App
  • Twitter
  • Discord Support
  • Basics
    • Welcome to Squads
    • What is a smart account
    • What is a multisig
    • Who we are - Squads Labs
    • Security
  • Getting Started
    • Quickstart Guide
    • Create a Squad
    • On and Off-Ramp
      • Virtual US Bank Account
      • Sphere
      • Coinflow Off-ramp
      • Bridge Off-Ramp
      • Third-Party Payouts
    • Treasury Management Overview
    • Pricing
  • Navigating your Squad
    • Dashboard
    • Transactions
      • Priority fees
      • Batch actions
      • Rent Reclaim
    • Members
      • Manage Members
      • Permissions
      • Fee Relayer
    • Treasury
      • Sub-accounts
      • Manage assets
      • Contacts
      • Airdrop Checker
    • Payments
    • Trade
      • Limit Orders
      • Swaps
    • Stake
      • Staking with Squads
      • Direct Staking
      • Liquid Staking
      • Marinade Native
    • Developers assets
      • Programs
      • Validators
      • Token Manager
      • Transaction Builder
    • Settings
      • Spending Limits
      • Coin List Filter
      • Privacy
      • Time Locks
      • Export CSV
    • Integrated apps
      • TipLink
      • Range
      • SNS
      • Safe
    • SquadsX
      • Start using SquadsX
      • Compatible Apps
    • Reporting and Accounting
      • Request Finance
      • Integral
  • Additional Resources
    • FAQs
    • Advanced Security Best Practices
    • Costs of using Squads
    • Sending assets to/from centralized exchange (CEXs)
    • Squads on Mobile
    • What if the Squads app goes down
    • Key aspects of using a multisig
Powered by GitBook
On this page
  • Create and add programs
  • Upgrade a program
  • Withdraw program upgrade authority
  • Squads GitHub Action for Program Upgrades
  1. Navigating your Squad
  2. Developers assets

Programs

How to create, upgrade, and change the authority of programs within your Squad.

PreviousDevelopers assetsNextValidators

Last updated 7 months ago

Squads offers a seamless experience for managing programs. Users can collectively manage program upgrades with their team via multisig. This eliminates single points of failure and reduces the risk of unauthorized changes to the program(s).

With Squads, users can:

  • Add programs to their Squad

  • Upgrade programs

  • Change the authority of programs

Create and add programs

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

Create programs

  1. Create and deploy a program using your CLI.

Add programs

  1. Navigate to the "Programs" tab 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.

  1. Set the program’s upgrade authority to the address provided using one of the following options:

  • Copy the Squad address and transfer the authority from the current authority holder

  • Copy the code and run in your CLI tool that is an authority holder

  • Use SAT (Safe Authority Transfer) to transfer the 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. Click on the "Create SAT" button.

  2. Run a transaction inside your Squad.

  3. Once the transaction meets the confirmation threshold, execute it with your CLI tool that you added to your Squad.

  4. Once the transaction is executed, your program authority will be transferred.

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.

Upgrade a program

Once a program has been added to a Squad it can be upgraded straight from it with an easy-to-use interface.

To upgrade a program:

  1. Deploy your upgrade to the buffer using the command below. (For Rust)

solana program write-buffer <PROGRAM_FILEPATH>
  1. Click on the program from the list and then click on the "Add upgrade" button.

  2. Insert the details of the upgrade: name, buffer, spill address, commit link and address for buffer refund, then click "Next" and approve the transaction in the wallet pop-up.

  1. Set the authority of the buffer to the provided address by copying a code in your CLI. Then click “Verify authority”.

  1. Click the "Upgrade" button. A transaction will be created, after it meets the confirmation threshold and gets executed, a program upgrade will be deployed.

Withdraw program upgrade authority

A program authority delegated to a Squad can be changed to any other address if needed at any point.

To do this:

  1. Click on the program from the programs list.

  2. Click on the "Change authority" button.

  3. Insert a new program authority address and initiate a transaction.

  4. Program authority will be changed upon transaction execution.

Squads GitHub Action for Program Upgrades

With the Squads GitHub action, teams can automate program deployments directly from their Github CI/CD pipeline to a program upgrade proposal in their Squads multisig. It simplifies the process of building and deploying a program buffer account, as well as initializing an upgrade proposal.

Add your CLI tool to the Squad. Check the for more information on adding members.

For more information about writing intermediary buffer accounts refer to the link:

After a program upgrade has been initialized, the members of the multisig can view the details about the upgrade in the Squads app. They can then verify that the on-chain buffer matches the program source code using .

To set up the Squads GitHub action for your program upgrades, please refer to this guide: .

https://docs.solana.com/cli/deploy-a-program#using-an-intermediary-buffer-account
Ellipsis Labs's verifiable build
github.com/Squads-Protocol/squads-v4-program-upgrade
Settings and Members page
Programs tab
Add program pop-up
Transfer program upgrade authority
Safe Authority Transfer
Program upgrades
Add upgrade pop-up
Set upgrade buffer authority pop-up
Page cover image