Accounts
Various account types in Squads V4, and how to derive them.
Multisig
PDA Derivation
Multisig Account Content
#[account]
pub struct Multisig {
/// Key that is used to seed the multisig PDA.
pub create_key: Pubkey,
/// The authority that can change the multisig config.
/// This is a very important parameter as this authority can change the members and threshold.
///
/// The convention is to set this to `Pubkey::default()`.
/// In this case, the multisig becomes autonomous, so every config change goes through
/// the normal process of voting by the members.
///
/// However, if this parameter is set to any other key, all the config changes for this multisig
/// will need to be signed by the `config_authority`. We call such a multisig a "controlled multisig".
pub config_authority: Pubkey,
/// Threshold for signatures.
pub threshold: u16,
/// How many seconds must pass between transaction voting settlement and execution.
pub time_lock: u32,
/// Last transaction index. 0 means no transactions have been created.
pub transaction_index: u64,
/// Last stale transaction index. All transactions up until this index are stale.
/// This index is updated when multisig config (members/threshold/time_lock) changes.
pub stale_transaction_index: u64,
/// Reserved for future use.
pub _reserved: u8,
/// Bump for the multisig PDA seed.
pub bump: u8,
/// Members of the multisig.
pub members: Vec<Member>,
}Proposal
PDA Derivation
Proposal Account Content
Vault Transaction
PDA Derivation
Vault Transaction Account Content
Batch
PDA Derivation
Batch Transaction Account Content
Config Transaction
PDA Derivation
Config Transaction Account Content
Last updated