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