All major modifications to Marinade protocol will be detailed here and communicated to our users in advance.
Status: Confirmed and applied.
Status: Communication phase. Changes will be applied on May 16th 2022.
- Marinade's Delegation Strategy will be updated to include a new mechanism, partial unstaking. Before this upgrade, the Delegation Strategy had to work around the fact that it could not unstake SOL from an overstaked validator without performing an emergency unstake where all SOL would get unstaked. This situation had led to some rules in place to avoid overstake in the first place. Those rules will no longer apply and partial unstake will allow for a better management of the stake.
Example: Validator A received 100K SOL accumulated stake in previous epochs. In the last few epochs Validator A performance is degraded, but Marinade users keep staking SOL (no net unstake at the end of the epoch). In that situation the bot can now use partial-unstake, to remove 20K from Validator A and move it to Validator B that is producing at a better rate.
See the planned code modification on Github: https://github.com/marinade-finance/liquid-staking-program/commit/7264daf94d3827d5ca15a555ec2814f2ff08e53d
Documentation will be updated on May 16th to reflect the future changes once they are implemented. See Delegation Strategy
Status: Fixed. Compensation to be determined and announced.
On March 2nd, an issue occurred with the bot responsible of staking/unstaking operations leading to the unstake of most of the SOL handled by Marinade.
This issue did not put funds at risk. Only rewards for epoch 285 have been affected.
You can download and consult the full post-mortem file below.
Changes applied to prevent this issue from happening again:
• Emergency brake has been fixed.
• Sanity check for the total score returned by the processing was added.
• Marinade is no longer using stakeview.app to control emergency unstakes (it is only used for informative purposes)
Incident analysis - 2022-03-02.pdf
File updated on 03/10/2022, details about the Emergency Brake added.
Marinade stakes SOL to validators using a set delegation strategy where all validators have a score calculated each epoch.
Before this update, Marinade was using the Solana program Stake-O-Matic, before post-processing those scores to determine the stake and unstake operations to perform.
This program has been forked and modified in order to add small improvements and allow a better post-processing of the on-chain scores. Those changes have minor impacts on how the score is calculated.
This new repository is open-source and available here:
Another set of changes has been applied on the post-processing rules in order to improve the distribution of the stake and reach more validators than before, with the goal to spread the stake more evenly and decentralize the network even more. Some improvements have also been implemented to avoid 'overstaking' to validators and unstake them in some situations. Please check the Delegation Strategy page for details.
If you are a validator and have questions or want to participate to the future discussions related to the delegation strategy, please join our Discord.
On January 14th, the permissionless bot responsible for moving the staking rewards to the pool (causing the mSOL price to go up each epoch) was not able to finish all the planned operations because it ran out of SOL to perform them. This issue was resolved in a few hours and the operations were resumed and completed.
This incident resulted in a delay of 24h in the mSOL/SOL price update.
A monitoring tool has been added on the same day to prevent this issue from happening in the future.
Status: Confirmed and applied.
Status: Communication phase. Changes will be applied on January 4th 2022.
- The number of epochs you have to wait when withdrawing your funds via the "Delayed unstake" function is reduced by one epoch.
See the planned code modification on Github: https://github.com/marinade-finance/liquid-staking-program/commit/028c6e579f662e8cc5b92344f96797f49c4eec88
Documentation will be updated to reflect the future changes once the change is active. See Delayed Unstake.