Protocol Overview
Marinade was built with a simple architecture to facilitate liquid staking for the next billion users. This architecture also has the benefit of being easy to adapt if necessary and to operate in a permissionless way.
Our code, our delegation strategy and our contracts are open source and can be accessed freely. All our computations can be run on your own computer to verify any information.
Marinade is also completely permissionless, meaning that our bot can be run by anyone in order to use the protocol or keep it operating.
Let's review the different components of our protocol and how they interact together.
What can you do on Marinade?
Marinade offers different options:
Stake your SOL and receive mSOL.
Deposit your stake account (if you are already delegating your SOL to a validator) and receive mSOL.
Stake SOL or deposit a stake account to Marinade Native.
Unstake any other liquid staked token immediately for a fee.
Stake SOL
When you choose to 'Stake', these operations happen under the hood:
You deposit SOL in the reserve account.
Marinade takes this amount and accordingly increases the amount of stake orders falling under:
current epoch (epoch_stake_orders)
total staked (total_stake_orders)
Marinade mints mSOL for the user according to mSOL/SOL ratio.
Deposit an existing stake account
When you choose 'Deposit stake account', these operations happen under the hood:
Marinade finds the delegated-active-credit-observed stake accounts, delegated to any validator.
Marinade takes control of the delegated and fully active stake account by becoming staking and withdrawing authority.
Marinade takes this amount and accordingly increases the amount of stake orders falling under:
current epoch (epoch_stake_orders)
total staked (total_stake_orders)
Marinade mints mSOL for the user according to the mSOL/SOL ratio.
In order to be able to deposit your stake account, it needs to contain at least 1 SOL.
Delayed unstake
When you choose 'Delayed unstake', these operations happen under the hood:
You are given a claim ticket (that will be a NFT issued on the blockchain) indicating the amount and due time of your unstake.
mSOL is burnt and removed from the supply.
The unstake operation is launched and performed by the bot.
In due time, you will be able to claim your SOL and destroy the claim ticket in exchange. (A claim ticket has no expiry date.)
This mechanism is required to perform larger unstake operations, when the amount is bigger than the current balance of the liquidity pool or if you do not mind waiting for the unstaking period.
Example of Delayed unstake at Epoch N:
Here are the three situations that can happen when you use ‘Delayed unstake’ during epoch N.
You start unstaking during Z, which is the beginning of epoch n (a few minutes into epoch n).
You will receive your SOL at the beginning of epoch n+1. The amount of SOL you receive is computed as SOL = [mSOL to burn]*[mSOL price]
when the unstaking starts, but the mSOL price may not be updated as the Marinade bot needs to be run to update the price at the beginning of each epoch. We suggest waiting a few hours into the epoch before using 'Delayed unstake' and starting it before the last 4 hours of the epoch.
You start unstaking during A.
You will receive SOL at the beginning of epoch n+1. The amount computed is [mSOL to burn]*[mSOL price]
when the unstaking starts.
You start unstaking during B, the last 4 hours of epoch n.
You will receive SOL at the beginning of epoch n+2. The amount computed is [mSOL to burn]*[mSOL price]
when the unstaking starts.
Use Marinade Liquid
Marinade LiquidUse Marinade Native
Marinade NativeLast updated
Was this helpful?