☀️Solana program architecture
Solana is built as a program that derives new accounts for its supported tokens.

Each account's layout can be read at Solana account structure.
The program supports the following instructions:
// wrap fluid token
Wrap(u64, String, u8),
// unwrap fluid token
Unwrap(u64, String, u8),
// payout two accounts
Payout(u64, String, u8),
// initialise solend obligation account
InitSolendObligation(u64, u64, String, u8),
LogTVL,
// initialise the data account for this token
InitData(String, u64, u64, u8, u64, u64),
// move from prize pool to account
MoveFromPrizePool(u64, String, u8),
// update mint limit to an amount
UpdateMintLimit(u64, String),
// update the payout restriction limit
UpdatePayoutLimit(u64, String),
// update the payout authortity (the rng oracle)
UpdatePayoutAuthority(String),
// update the operator (the multisig)
UpdateOperator(String),
// confirm the payout authority in the two step replacement process
ConfirmUpdatePayoutAuthority(String),
// trigger emergency mode
Emergency(String)
Features in pseudocode form
Wrapping in (Wrap)
Using Solend, the program deposits the user's given amount as liquidity
The program determines the collateral account from Solend
The program stores the collateral in the obligation account for the token
Using the SPL token, user tokens are minted proportionate to the amount deposited
Wrapping out (Unwrap)
Contract burns the user's SPL tokens
Refreshes the Solend reserve
Calculates the Solend collateral amount in the obligation account
Withdraws from Solend to the user's token account
Last updated
Was this helpful?