A faulty smart contract on Lido's Solana staking platform is preventing users from withdrawing their staked Solana (stSOL) tokens, effectively locking approximately $24.4 million worth of deposits on the discontinued staking service.
Lido offers liquid staking, a service where users can earn rewards on staked cryptocurrencies while maintaining liquidity by receiving liquid staking tokens (LST), stSOL in this case. In mid-October 2023, Lido announced it was discontinuing its Solana staking service due to financial unsustainability and insufficient fee revenue due to low participation. This decision followed a community vote based on Lido's (now former) peer-to-peer (P2P) validator team's proposal to fund or sunset the service, with an overwhelming 92.73% voting for the latter.
Lido warned users that they could unstake their Solana through the user-friendly interface, a streamlined way to interact with the underlying smart contract, until February 4. The UI was removed afterward, leaving users with the only option of manually unstaking via Solana's command line interface (CLI).
On-chain data analysis showed that 112,495.91 stSOL across 31,587 holders remain on the platform. According to reports on the Lido Discord server, many users criticized the CLI option for being too complicated and convoluted or giving unknown errors.
On March 30, Pavel Pavlov, a product manager at P2P Validator, revealed on Discord that the issue wasn't a user error but a bug: "It is suspected to be associated with alterations in the Rent-Exempt Split logic," Pavlov said. "The current implementation uses the split function in the withdrawal process of the smart contract."
The Rent-Exempt Split logic comes into play for accounts that hold a mix of regular and exempt data. It divides the account's storage space into two categories: one for regular data (subject to rent) and another for exempt data (rent-free). The rent is then calculated based on the amount of regular data stored.
P2P Validator does not have the authority to change the smart contract directly. As Pavlov pointed out, amending it requires Lido's involvement and is a time-consuming and complex process.
On April 3, the P2P Validator team officially announced a fix, launching "an updated maintainer bot" and new documentation for the CLI withdrawal process. While there is no fix to the smart contract bug, Pavlov confirmed that the team is exploring alternative solutions.
Community members have suggested other withdrawal alternatives, such as swapping stSOL for SOL or other liquid staking tokens through on-chain protocols like Sanctum and Jupiter.
It is not clear who would swap their tokens for something that can't be redeemed, yet we could not leave the efforts of Sanctum's "Twitter guy" unnoticed.