A passive, diversified liquid staking strategy that automatically rebalances across Solana's top LST protocols while optimizing for APY.
Website: https://mint.jsoli.xyz
App: https://jsoli.xyz
Program: DSBLsQNcR9UVnoqbBw2cVvQUXj9PkHzp22xBq9ow8NdV
Status: 🚀 Live on Devnet — Jan 2026
jSOLi aggregates user deposits across multiple Liquid Staking Token (LST) protocols on Solana, automatically rebalancing to optimize yield. Users deposit SOL and receive jSOLi shares representing their proportional ownership.
- Passive Strategy - Deposit SOL, earn optimized staking rewards
- Diversified - Spread across Jito, Marinade, BlazeStake, Lido & native staking
- Auto-Rebalancing - Adjusts allocations when APYs shift
- Secure - Circuit breakers, oracle validation, pause mechanism
| Protocol | Allocation | Token | Est. APY |
|---|---|---|---|
| Jito | 30% | jitoSOL | ~7.5% (incl. MEV) |
| Marinade | 30% | mSOL | ~6.7% |
| BlazeStake | 20% | bSOL | ~6.8% |
| Lido | 10% | stSOL | ~6.5% |
| Native | 10% | SOL | ~6.0% |
Target Blended APY: 6.8-7.2%
| Fee Type | Rate | Max Allowed |
|---|---|---|
| Management Fee | 0.5% annually | 1.0% |
| Performance Fee | 10% of gains | 20% |
- Features:
- ✅ Checked arithmetic (no overflow/underflow)
- ✅ Role-based access control
- ✅ Emergency pause mechanism
- ✅ Oracle staleness validation (60s max)
- ✅ Slippage protection on swaps
- ✅ Max 50% allocation per protocol
| Account | Address |
|---|---|
| jSOLi Vault | TBD |
| jSOLi Mint | TBD |
| Account | Address |
|---|---|
| jSOLi Program | DSBLsQNcR9UVnoqbBw2cVvQUXj9PkHzp22xBq9ow8NdV |
| Vault PDA | 5AvSxZhE4gxFVyoL3PpVRtrUa2hmYf9WUdsSbWxLiB7D |
| jSOLi Mint | AUThYzVoRi6WEcgjAHyRCjjG3ZPpyi4xNn626z6rLWRf |
jSOLi-vault/
├── programs/jSOLi-vault/src/
│ ├── lib.rs # Program entry point
│ ├── constants.rs # Configuration values
│ ├── errors.rs # 30+ custom error types
│ ├── state.rs # VaultState, UserAccount, WithdrawRequest
│ ├── instructions/
│ │ ├── initialize.rs # Vault setup
│ │ ├── deposit.rs # SOL deposits → jSOLi shares
│ │ ├── withdraw.rs # Two-step withdrawal
│ │ ├── rebalance.rs # Allocation adjustment
│ │ ├── admin.rs # Config, fees, pause
│ │ └── staking.rs # LST protocol interactions
│ └── utils/
│ ├── math.rs # Safe arithmetic
│ ├── validation.rs # Input validation
│ ├── oracle.rs # Pyth price feeds
│ └── protocols.rs # LST protocol helpers
├── tests/ # Anchor test suite
├── scripts/ # Deployment scripts
└── deployments/ # Network-specific configs
# Install dependencies
yarn install
# Build the program
anchor build
# Run tests
anchor test
# Deploy to devnet
anchor deploy --provider.cluster devnet- User deposits SOL into the vault
- Vault calculates shares based on current TVL
- jSOLi tokens are minted to user
- SOL is allocated across LST protocols
- User requests withdrawal with jSOLi amount
- Vault creates
WithdrawRequestwith ~3 day unlock - User completes withdrawal after unlock period
- jSOLi is burned, SOL returned to user
- Triggered when any protocol deviates >5% from target
- Minimum 1 hour between rebalances
- Open to any caller (permissionless trigger)
- Slippage protection enforced
| Protocol | Program ID | Unstaking |
|---|---|---|
| Marinade | MarBmsSg... |
Instant (0.3% fee) or delayed |
| Jito | Jito4APy... |
Instant (0.1% fee) |
| BlazeStake | stk9ApL5... |
~2 days |
| Lido | CrX7kMhL... |
~3 days |
- Core program architecture
- State accounts and error handling
- Deposit/withdraw instructions
- Rebalancing logic
- Security audit
- Devnet deployment
- Pyth oracle integration
- Complete LST CPI integrations
- Comprehensive test suite
- Mainnet launch
Jubilee Labs • Powered by Anchor • Deployed on Solana
This project is licensed under the MIT License.
"Seek first the Kingdom of God!" — Matthew 6:33