Account Structure
In general, there are 2 types of accounts used to implement the Strike wallet in Solana:
  • Persistent accounts - These exist for the life span of the wallet
  • Temporary accounts - These are created for the life span of an operation

Persistent Accounts

Account
Description
Implementation
Owner
Program Account
main wallet
executable
BPFLoaderUpgradeab1e11111111111111111111111
Program Data Account
holds wallet program code
PDA
BPFLoaderUpgradeab1e11111111111111111111111
Wallet Config Account
All wallet and balance account configuration data
PDA derived from program version
Program account
Balance Accounts
used to hold wallet balances
PDA derived from balance account GUID
Program account
Associated Token Accounts
used to hold SPL balances in Balance accounts
SPL token program balance account PDA is listed as owner in data

Temporary Accounts

Account
Description
Implementation
Owner
Multisig Op Account
created to hold a new multisig op at initialization and then removed when finalized
Program account
Multisig Op Data Account
created to hold data for a new multisig op at initialization and then removed when finalized
Buffer Account
Used to hold the code during a program upgrade