Squads Docs
Squads Legacy (v3)
Squads Legacy (v3)
  • Getting Started
    • What's a Squad?
    • Create a Squad
  • Navigating Your Squad
    • Dashboard
    • Vault
    • Transactions
    • Developers
      • Programs
      • Token Manager
      • Validators
      • TX Builder
    • Creators
    • Apps
    • Owners and Settings
  • Integrations
    • Staking
      • Stakewiz
      • JitoSOL
      • Lido
      • Marinade
      • SolBlaze
    • Swap
    • Tensor
    • Dialect
    • Bonfida
    • Coinflow
  • Frequently Asked Questions
    • General
    • Costs of using Squads
  • Development
    • PDAs
      • Multisig
      • Transaction
      • Instruction
      • Derivation
    • Authorities
    • Anchor IDL
      • Loading the Program
      • Create a Multisig
      • Transactions
        • Create a Transaction
        • Adding Instructions
        • Activating a Transaction
        • Approve / Reject a Transaction
        • Executing
    • SDK
Powered by GitBook
On this page
  1. Development
  2. PDAs

Instruction

Instruction PDAs reference an on-chain account that stores information about instructions that are attached to a Transaction.

As with transaction PDAs, instruction PDAs also expect a numeric index relating to the number of instructions attached to a transaction. Every time an instruction is attached to a transaction, the instructionIndex will be bumped up by one. This provides a simple way to collect all instructions associated with a specific transaction. Deriving an instruction PDA requires a transaction PDA and the transactionIndex.

await anchor.web3.PublicKey.findProgramAddress([
    anchor.utils.bytes.utf8.encode("squad"),
    transaction.toBuffer(),
    instructionIndex.toBuffer("le", 1),  // note instruction index is an u8 (1 byte)
    anchor.utils.bytes.utf8.encode("instruction")
], programId);

Be sure to provide the instructionIndex as a single byte little-endian buffer.

The instruction PDA derivation format is as follows:

["squad", transaction, instructionIndex, "instruction"]
PreviousTransactionNextDerivation