Squads v3 Docs
Search
K
Comment on page

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"]