JLP SOL Staking

Native SOL Staking for JLP Pool

Overview

The JLP pool implements a native SOL staking mechanism to maximize capital efficiency by staking unused SOL and distributing the rewards to generate additional yield for LP holders.

How It Works

1. Stake Account Creation
The protocol creates new stake accounts each time it stakes for easier accounting. A separate stake info account is also created to track the following information:

- Current staked amount: The current staked amount for the stake account
- Total staking rewards: Cumulative stake rewards earned by the account
- Last updated: Timestamp for the stake info account's last update
- Deactivating status: Flag to identify if the stake account is being unstaked

The stake info account is updated each time the stake account is refreshed and acts as a tracker for the stake account.

2. Stake Delegation
Once the stake account is created, the program transfers the SOL to stake from the pool's custody account. The SOL is then delegated to the Jupiter validator [CatzoSMUkTRidT5DwBxAC2pEtnwMBTpkCepHkFgZDiqb].

Important Notes:
- The JLP only stakes to the Jupiter validator (no multi-validator delegation like stake pools)
- The program enforces maximum staking limits for safety
- If the limit is reached, no more SOL can be staked until existing stakes are withdrawn

3. Reward Redemption
Staking rewards are calculated periodically **without withdrawing the staked amount**. This allows the staked accounts to continue generating rewards while the JLP receives the yield. This is possible because the pool owns the staked SOL natively, avoiding the risks associated with liquid staking tokens (LSTs) such as depegs or third-party smart contract vulnerabilities.

How it works:
- Staking rewards are added to the pool's fee reserves
- The stake info account is updated to record total rewards earned
- Rewards include both staking yields and additional sources like Jito MEV rewards

4. Unstaking and Withdrawing
When unstaking, the staked SOL goes through Solana's standard deactivation process:
- Deactivation takes up to two epochs (~2-3 days) depending on timing
- Once deactivated, all SOL (principal + rewards) is withdrawn to the JLP, which fully realizes the accumulated stake rewards

Benefits

1. Capital Efficiency: Idle SOL generates yield instead of sitting unused
2. Compounding Returns: Rewards compound over time, benefiting from the JLP's significant SOL holdings
3. Flexible Liquidity: Staked SOL can be unstaked anytime when additional liquidity is needed
4. No Additional Risk: Native staking avoids LST risks like depegs or smart contract vulnerabilities

FAQ

Q: Does staking affect user profits or withdrawals?
A: No. The protocol maintains sufficient liquid SOL to cover all user profit obligations and monitors unrealized PNL and utilization closely. Unstaking will be done if required.

Q: What happens if there isn't enough liquid SOL to pay out profits?
A: In the rare case where immediate SOL liquidity is insufficient:
1. Users may be offered the option to close positions in USDC as an alternative
2. The protocol will delay SOL payouts while unstaking is processed (2-3 days)

The protocol monitors utilization rates and market conditions closely to prevent this scenario.

Q: Does staking impact swaps and trading?
A: No. The protocol uses a token weightage system with buffers to ensure swaps are unaffected when staking SOL.

Q: How does the protocol ensure enough liquidity remains?
A: The protocol implements several safeguards:
- Maximum staking limit
- Token weightage validation for SOL
- Real-time monitoring of pool utilization

Q: Who controls the staking operations?
A: Staking operations can only be executed by the Jupiter Perpetuals program.

Q: How are staking rewards distributed?
A: Staking rewards follow the standard JLP fee distribution:
- 75% added to the pool
- 25% to the protocol