Economics Best Practices
Fee-aware, incentive-aligned application design.
Search across all documentation pages
Fee-aware, incentive-aligned application design.
confirmed or finalized. Do not treat processed as final.Agave 4.1.1 epoch boundaries drive rewards and stake activation—align ops scripts with getEpochInfo.
Use Solana CLI 3.0.10, which pairs with Agave 4.1.1. Install with agave-install init 4.1.1 (or your team's pin file), then verify with solana --version and agave-install --version.
Use @solana/kit 7.0.0 for new TypeScript—typed RPC methods, smaller API surface, and examples on this page already use Kit. Keep web3.js only for legacy codebases; migrate RPC calls and transaction building incrementally.
Use confirmed for dashboards and finalized before withdrawals or cross-system callbacks.
Reward issues: verify getStakeActivation and validator delinquency before blaming application code.
Yes—staking and governance programs deploy on devnet with test epochs. Economics differ (no real value), but instruction shapes match mainnet.
Stake and governance txs can chain many CPIs—simulate full flows with high CU limits.
Anchor 0.32.1 patterns apply when you write on-chain programs: typed accounts, require! guards, and IDL generation—use avm use 0.32.1 and anchor-lang = "0.32.1" in Cargo.toml.
Start Surfpool 0.12.0, point RPC to its port, and run anchor test or client integration scripts against forked accounts.
Use fixtures for stake accounts; validate economics on devnet epochs.
The validator client rebranded to Agave (4.1.1), CLI 3.0.10 aligns with it, and Alpenglow work is changing finality—pin versions and read release notes each upgrade.
getStakeActivation, getInflationReward, getVoteAccounts, getTokenAccountBalance.
Stack versions: This page was written for Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, and LiteSVM 0.6.x.
Reviewed by Chris St. John·Last updated Jul 16, 2026