Authorities
Authority PDAs are responsible for signing the underlying CPIs executed by the multisig. Generally they should be seeded by a u32 starting from the default of 1 (the authorityIndex
). The authorityIndex
of a Transaction account will be used to generate the seeds necessary to perform the CPI. Most often you can simply use the authorityIndex
of 1. For example, the Squads client uses an authorityIndex
of 1 for all default PDAs (the vault, program upgrade authorities, etc).
Transactions must specify this authorityIndex
upon creation, and all instructions attached to the Transaction should use the same authority PDA for any account that is designated as a signer.
The authorityIndex
of 0 is reserved for internal multisig instructions, and should generally be avoided.
The Authority PDAs are derived as such:
Note that the authorityIndex should be supplied to the function as a 4 byte little-endian buffer.
The format of deriving an authority is:
["squad", multisig, authorityIndex, "authority"]