Liquid Staking is a liquid staking program for the Solana blockchain built using the Anchor framework. This project allows users to stake SOL tokens and receive liquid staking derivatives (mSOL) in return.
├── .git/ # Git repository
├── scripts/ # Build and deployment scripts
├── programs/ # Solana program source code
├── README.md # Project documentation
├── LICENSE.md # License information
├── Cargo.toml # Rust workspace configuration
├── Cargo.lock # Dependency lock file
├── Anchor.toml # Anchor framework configuration
└── .gitignore # Git ignore rules
├── src/
│ ├── lib.rs # Main program entry point and instruction definitions
│ ├── error.rs # Custom error types and error handling
│ ├── checks.rs # Validation and security checks
│ ├── calc.rs # Mathematical calculations and formulas
│ ├── state/ # Program state structures and data models
│ ├── instructions/ # Program instruction implementations
│ └── events/ # Event definitions and logging
├── Cargo.toml # Program-specific dependencies
└── Xargo.toml # Cross-compilation configuration
- Program ID:
MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD - Security: Implements security.txt for transparency
- Instructions: Defines all program instructions and their handlers
- Initialization:
initialize,change_authority - Validator Management:
add_validator,remove_validator,set_validator_score - User Operations: Liquid staking and unstaking
- Liquidity Pool: Add/remove liquidity operations
- Admin Functions: Configuration and management operations
mod.rs: Main state structures and program statevalidator_system.rs: Validator list and scoring systemstake_system.rs: Staking mechanics and stateliq_pool.rs: Liquidity pool managementfee.rs: Fee calculation and managementlist.rs: Generic list data structuresdelayed_unstake_ticket.rs: Delayed unstaking ticket system
admin/: Administrative operationscrank/: Automated processing operationsdelayed_unstake/: Delayed unstaking functionalityliq_pool/: Liquidity pool operationsmanagement/: Program management functionsuser/: User-facing operations
user.rs: User operation eventsadmin.rs: Administrative eventscrank.rs: Automated processing eventsliq_pool.rs: Liquidity pool eventsdelayed_unstake.rs: Delayed unstaking eventsmanagement.rs: Management operation events
error.rs: Comprehensive error handling with custom error typeschecks.rs: Security validations and account checkscalc.rs: Mathematical calculations for staking rewards and fees
- Workspace: Multi-crate project structure
- Release Profile: Optimized for production with overflow checks
- Dependencies: Anchor v0.29.0, Solana SPL token programs
- Toolchain: Anchor v0.29.0, Solana v1.17.0
- Program ID: Configured for localnet deployment
- Features: Seeds and linting enabled
- Provider: Mainnet cluster configuration
verify.sh: Program verification scriptverify-buffer.sh: Buffer verification scriptprepare-upgrade.sh: Upgrade preparation script
- Audits: Multiple security audits from Neodyme, Sec3, Kudelski Security, and Ackee Blockchain
- Security.txt: Transparent security contact information
- Overflow Protection: Runtime overflow checks enabled
- Account Validation: Comprehensive account validation and security checks
- Anchor Lang: v0.29.0 - Solana program framework
- Anchor SPL: v0.29.0 - SPL token program integration
- Solana Security TXT: v1.1.1 - Security transparency
- Integration Tests: Not included in this repository (to be published later)
- Liquid Staking: Convert SOL to mSOL for immediate liquidity
- Validator Management: Dynamic validator list with scoring system
- Liquidity Pool: Automated market making for mSOL/SOL pairs
- Delayed Unstaking: Option for delayed SOL withdrawal
- Fee Management: Configurable fee structure for sustainability
- Automated Operations: Crank system for automated processing
Liquid Staking represents a sophisticated DeFi protocol for liquid staking on Solana, providing users with the benefits of staking while maintaining liquidity through derivative tokens.