Account Structure
Implementation Details
Program Accounts
Global Vault State
User Stake Account
Token Vault Account
PDAs
Vault state: ['vault', mint]
User: ['interactor', wallet, mint]
Vault: ['token_vault', mint]
Claim Cooldown Mechanics
The protocol implements a hour cooldown period between claims using a dedicated timer stored in user account:
Each stake timer is stored in stake_deposits array
Timer starts when stake is created or last claim is made
Early withdrawals forfeit pending rewards
Timer state persists across claims for compound strategies
#[account]
pub struct UserInteractions {
total_deposits: [u64; 5],
time_deposits: [u64; 5],
stake_deposits: [u64; 5]
}
Last updated