Program Architecture
System Overview

Transaction Flow Architecture
Last updated

Last updated
// Authority seeds defined in lib.rs
AUTHORITY_DEPOSIT = b"deposit"
AUTHORITY_WITHDRAW = b"withdraw"
TRANSIENT_STAKE_SEED_PREFIX = b"transient"
EPHEMERAL_STAKE_SEED_PREFIX = b"ephemeral"Stake Pool Address + Seeds → PDA
├── [pool_address, "deposit"] → Deposit Authority
├── [pool_address, "withdraw"] → Withdraw Authority
├── [pool_address, "transient", validator, seed] → Transient Stake Account
└── [pool_address, "ephemeral", seed] → Ephemeral Stake Account// Maximum 3/2 ratio increase per epoch prevents malicious fee increases
pub const MAX_WITHDRAWAL_FEE_INCREASE: Fee = Fee {
numerator: 3,
denominator: 2,
};pub const MAX_VALIDATORS_TO_UPDATE: usize = 4; // Per instruction limit