# Welcome to Marinade

The best place to stake your SOL.

## **What is Marinade?**

Marinade is a stake automation platform that helps you maximize SOL staking rewards while supporting the decentralization and performance of the Solana network. It continuously monitors the validator landscape and delegates your stake across a carefully selected set of high-performance validators using an open, transparent strategy.

Users can stake their SOL either **natively** or through **liquid staking** for mSOL, a tokenized version of staked SOL. Both methods use the same validator delegation logic and receive rewards every epoch (approximately 2 days).

## Creation of Marinade

Marinade was born out of the [merger of two projects](https://medium.com/marinade-finance/stronger-together-c1654f0f4c80) trying to accomplish a similar goal: offer a liquid staking solution on Solana that participates to the decentralization of the network and its security.

The teams joined forces to work more efficiently towards making this idea a reality. Marinade formed around a set of values and a common objective and started building.&#x20;

## Goals

### Spread adoption

To onboard the next 1 billion people to crypto, we believe that the user experience must dramatically evolve and adapt to the needs of more users.

While early adopters don’t care about writing down seeds and pin codes for multiple wallets, storing it around their house, or burying it in the ground, we can’t imagine a world where this is still a standard after 5, 10, or 20 years.

That’s why we emphasize having our solution **well-designed, seamless, and a pleasure to use,** so that a friend can tell a friend that staking is as easy as clicking a button.

***

## What are the benefits of staking SOL?

Blockchains use consensus protocols to validate transactions in a secure and decentralized way. Solana relies on a proof-of-stake mechanism, where staking plays a key role in maintaining the network’s security and performance.

When you stake your SOL tokens to a validator, you contribute to the decentralization and efficiency of the Solana blockchain. In return, you receive rewards in SOL for each epoch, which lasts approximately 2 to 3 days, depending on the validator’s performance.

Staking is important for the health of the network. The more SOL that is staked to efficient validators, the more decentralized and secure the system becomes. However, with the growing number of DeFi use cases, a significant amount of SOL remains unstaked and is actively used in decentralized applications across the ecosystem.

### What can you do with Marinade?

* Stake and unstake SOL at any time
* Use mSOL in DeFi protocols to multiply yield strategies
* Redelegate existing stake without unstaking
* Convert staked SOL into mSOL to make it liquid
* Participate in Marinade DAO governance and shape the future of staking on Solana


# Marinade DAO

Marinade.finance is governed and built by the community. Owning MNDE tokens or actively engaging in the community makes you a member of Marinade DAO. Let's see what this means.

## What is a DAO?&#x20;

A Decentralized Autonomous Organization (DAO) is an on-chain system designed to give the governance of a protocol back to its users. By owning the governance token, you have the right to vote on decisions taken for the future of the protocol. These governance rules are applied on-chain, by smart contracts, where all information is freely accessible.&#x20;

Marinade has established governance on Realms using SPL-governance. To stay up-to-date with the latest announcements, join Marinade's Discord.

## Marinade DAO

Marinade DAO (mDAO) is constituted of MNDE holders that lock their MNDE in governance. Locking MNDE in Marinade's governance gives voting power in the Marinade DAO and access to MNDE's utilities.&#x20;

## Values

When doing what we're doing, we come back to the following set of values:

#### **ADAPTABLE**

The ecosystem of Solana is **innovative and fast.** So are we. **Curiosity** is our favorite starting point. We nurture **agility.** Solid principles and processes allow us to **react quickly**. We are **building the future**.

#### **APPROACHABLE & HONEST**

We are **approachable**. We value team **collaboration over competition. Supportive** and **friendly** is our default mindset. **Honesty** guides our communication. We always **listen to ideas.**

#### **RESPONSIBLE**

Every one of us is **accountable for our individual contribution**, no matter the scope. We **own our commitments** as if no one is watching. We are all **value creators**. We **stand up for the outcomes** of our work. We **learn from failures**, and we **analyze and celebrate success**. We only accept short-term wins **compatible with our long-term vision**.

{% content-ref url="/pages/maDpRBtCQUHxBzY5Y7ut" %}
[Contributors](/marinade-dao/contributors)
{% endcontent-ref %}


# Contributors

You will find here the internal structure of the mDAO and its team members.

## Contributors

You will find here how Marinade is organised and how to join.

### Team Structure

Marinade's contributors are organised into teams rather than the two mDAO-era workgroups the DAO started with. The current teams are:

1. **Engineering:** Protocol and product engineering, DevOps, data and security. Owns the on-chain programs, the app, the APIs and the infrastructure behind them.
2. **Product:** Product direction and design across Marinade Native, Marinade Liquid, Select, Recipes, Borrow and the USDC vault.
3. **Partnerships:** Integrations, institutional and custodian relationships, technical sales and user support.
4. **BizOps:** Finance, legal, compliance, HR and operations.
5. **Marketing:** Brand, content and communications.
6. **Management:** Company direction and coordination across the teams above.

Governance sits with MNDE holders rather than with any of these teams. See MNDE Governance for how proposals are discussed, voted and executed, and for the split of powers between MNDE holders and the Marinade Council.

***

## Become a contributor

If you think you can contribute to Marinade, you can use [this form](https://tally.so/r/wkg9Zw) to reach out. If an open position fits with your skills, you'll be contacted for an interview. If there are no open positions matching your profile, we'll keep your application and may contact you in the future.

In the meantime, we strongly recommend that you read our entire documentation, join our [Discord](https://discord.gg/yTdH8YkYKg) and introduce yourself to the kitchen.


# The MNDE token

Marinade’s MNDE token lets holders participate in the protocol's governance. This includes control of the DAO’s fees and treasury.

## MNDE Details

{% hint style="info" %}
**This page reflects the DAO-approved burn of 300M MNDE (**[**MIP-14**](https://forum.marinade.finance/t/mip-14-burn-5-50-of-mnde-total-supply/1909)**) and the treasury allocations that followed it.** Supply and treasury balances change as the DAO acts, so this page links to live sources rather than restating figures that will drift.
{% endhint %}

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FtYFruvSvZ9NzEKlEBNMt%2FMNDE.png?alt=media&#x26;token=0ae468be-f17c-4519-ad5d-7290db031c09" alt=""><figcaption></figcaption></figure>

**Supply Overview**

* **Original supply at issuance:** 1,000,000,000 MNDE
* **Current supply (post-burn):** approximately **699.99M MNDE**. For the exact figure, read the [mint account](https://solscan.io/token/MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey) on chain, which is authoritative. Small subsequent burns continue to reduce it.
* **Burned:** 300,000,000 MNDE (DAO vote [MIP-14](https://forum.marinade.finance/t/mip-14-burn-5-50-of-mnde-total-supply/1909) · [Realms vote](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo/proposal/EyeY8hrThBWw5MMtsAmNrnc7BoJGAtHsfsxVf17cG7E1))
* **Circulating supply:** See [stats](https://stats.marinade.finance/d/sqUQd1Onk/marinade-kpi-dashboard?orgId=1\&refresh=1m\&from=now-90d\&to=now\&timezone=utc)

**Issuance Details**

* **Issuance date:** 2021
* **Fully issued date:** None (distribution based on DAO votes)
* **Mint address:** `MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey`
* **Minting:** Disabled. The mint authority and the freeze authority are both set to null on chain, so no further MNDE can ever be minted and no account can be frozen.

Marinade was founded through Solana ecosystem grants at the Solana Hackathon in 2021 and launched its liquid staking protocol and mSOL liquid staking token on mainnet that August.\
The MNDE governance token was minted later the same year as a fair-launch token with no ICO (Initial Coin Offering). Marinade launched on-chain DAO governance in April 2022. Since then, all decisions related to the treasury have been voted on chain.

In July 2023, the DAO migrated its governance platform to Realms. This enables direct control of the treasury and protocol decisions by MNDE holders.

***

### How to participate in DAO governance with MNDE

To participate in DAO governance, holders must lock their MNDE. Lock it on [Marinade's governance page](https://app.marinade.finance/governance/), which is the recommended route; locking directly in Realms performs the same on-chain action. Locked MNDE is subject to a 30-day unlocking period which begins once the unlock is initiated.

**Your voting power is calculated from your remaining lock time**, up to a 30-day maximum. This has two consequences worth knowing:

* MNDE that is **deposited but not locked carries no voting power at all.** In Realms, use "Lock tokens", not "Deposit".
* Once you start unlocking, your voting power **decays gradually across the 30 days** rather than disappearing. **You can still vote while unlocking**, with steadily less weight as the period runs down.

See MNDE Governance for the full locking walkthrough and the Realms parameters.

***

### Protocol Revenue and MNDE Buybacks

Under **MIP-22**, which passed and is recorded as Completed on chain, **10% of protocol revenue funds open-market MNDE buybacks**. The bought-back MNDE is distributed each quarter to eligible MNDE stakers, who claim it on the [MNDE claim page](https://app.marinade.finance/campaign/). You can follow the buybacks on chain: the MNDE bought so far accumulates in `BBaQsiRo744NAYaqL3nKRfgeJayoqVicEQsEnLpfsJ6x`, viewable on [Solscan](https://solscan.io/account/BBaQsiRo744NAYaqL3nKRfgeJayoqVicEQsEnLpfsJ6x).

Rewards are distributed each quarter. Q3 2026 rewards can be claimed on the [MNDE claim page](https://app.marinade.finance/campaign/) until 1 April 2027. Only claim through app.marinade.finance, and treat any message asking you to connect a wallet or approve a transaction as a scam.

**Buybacks are running.** They are not paused. What MIP-17 paused was the earlier MIP-11 buyback program. MIP-13 Active Staking Rewards is closed. Both are separate from the MIP-22 revenue buyback and should not be confused with it. Rewards from closed programs can no longer be claimed.

To be eligible for a quarterly distribution, a wallet must meet both conditions: it has MNDE staked (locked) on the [Marinade governance page](https://app.marinade.finance/governance/), and it has cast at least one governance vote in the trailing 12 months. MNDE that is only deposited, or held in a wallet or on an exchange, earns nothing. Eligibility is all or nothing, and each eligible wallet shares the distribution pro rata to its average staked balance over the quarter. See MNDE Governance.

***

### MNDE Incentives

Founded as a public good for Solana whose core mission is to contribute to a decentralized and performant Solana blockchain, Marinade’s main goal is to distribute MNDE to similar-minded ecosystem builders and enable them to control the parameters of protocol and treasury through governance.

While liquidity mining was prevalent in the early days of the token to grow distribution and liquidity, the DAO has since transitioned to a model where MNDE is distributed primarily via contributions to the protocol benefitting the TVL growth of the protocol.

Marinade’s core contributors do not receive time-based token unlocks, only TVL milestone unlocks. [Read more about Marinade’s MNDE and incentives](https://medium.com/marinade-finance/mnde-tokenomics-update-revisiting-incentives-at-marinade-3fc2d087d764?source=collection_home---6------14-----------------------).

***

### MNDE Allocations & Treasury Status

**Treasury Holdings**

Treasury balances move as the DAO votes and as programs pay out, so read them from chain rather than from this page.

| Treasury      | Address                                                                                                                   |
| ------------- | ------------------------------------------------------------------------------------------------------------------------- |
| DAO Treasury  | [`B56RWQGf9RFw7t8gxPzrRvk5VRmB5DoF94aLoJ25YtvG`](https://solscan.io/account/B56RWQGf9RFw7t8gxPzrRvk5VRmB5DoF94aLoJ25YtvG) |
| Labs Treasury | [`J5BEceL5z1EQ7JBqEFu4BfPN4PYCeQaW3GXrzXFfCzhs`](https://solscan.io/account/J5BEceL5z1EQ7JBqEFu4BfPN4PYCeQaW3GXrzXFfCzhs) |

Note that the DAO Treasury holds MNDE across **more than one token account**, so a single account view will understate it. The [Marinade KPI dashboard](https://stats.marinade.finance/d/sqUQd1Onk/marinade-kpi-dashboard?orgId=1\&refresh=1m) and the DAO's [Realms treasury view](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo) both give the consolidated picture.

**Distributed / Spent Programs**

<table><thead><tr><th width="209.77777099609375">Program</th><th width="120.11114501953125">Allocation</th><th>Status</th></tr></thead><tbody><tr><td>Retroactive Rewards</td><td>7.26M</td><td>Distributed 2021 across Waves 0 to 3</td></tr><tr><td>Project Incentives</td><td>68.54M</td><td>Distributed 2021 to 2022 to DeFi pools and protocols</td></tr><tr><td><a href="https://forum.marinade.finance/t/proposal-launch-160m-mnde-open-doors-tvl-program/398/21">Open Door Program</a></td><td>2.57M</td><td>Distributed 2021 to 2022 total</td></tr><tr><td>Token Exchange / Treasury Grant / Swap</td><td>12.52M</td><td>Distributed 2022</td></tr><tr><td>Miscellaneous Distributions</td><td>16.30M</td><td>Distributed 2022 to early 2023</td></tr><tr><td>Liquidity Mining Gauges</td><td>27.60M</td><td>Distributed Jul 2022 to Aug 2023</td></tr><tr><td><a href="https://marinade.finance/blog/mnde-tokenomics-update-revisiting-incentives">Team / Advisors Milestone (8M SOL)</a></td><td>46.00M</td><td>Distributed Oct 2022 to Sep 2023</td></tr><tr><td><a href="https://forum.marinade.finance/t/mdao-proposal-install-a-marketing-and-promotions-budget-of-up-to-6m-mnde-for-the-next-12-months-july-22-june-23/232">Marketing Budget</a></td><td>6.00M</td><td>Spent 2022 to 2023</td></tr><tr><td><a href="https://forum.marinade.finance/t/proposal-unlock-mnde-from-the-treasury-to-finance-security-audits/562">Security Audits</a></td><td>2.00M</td><td>Distributed Nov 2023</td></tr><tr><td>Initial Contributors</td><td>75.00M</td><td>Distributed 2023 - Jan 2024</td></tr><tr><td><a href="https://marinade.finance/blog/let-marinade-earn-season-2-begin">Marinade Earn S1 + S2</a></td><td>12.24M</td><td>Distributed 2023 to 2024 and claimed (25M unlocked; clawbacks returned)</td></tr><tr><td><a href="https://forum.marinade.finance/t/dao-proposal-unlock-a-25m-mnde-budget-over-3-months-for-marinade-earn-season-3/1312">Marinade Earn S3</a></td><td>25.00M</td><td>Distributed 2024; unused rolled into S4</td></tr><tr><td><a href="https://forum.marinade.finance/t/dao-proposal-unlock-a-26m-mnde-budget-to-onboard-multiple-market-makers-for-mnde/1393">Market Makers</a></td><td>26.00M</td><td>Distributed Jun 2024</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-4-fund-research-and-development-for-advancements-to-solana-staking-protocol-marinade/1696">MIP.4 Research &#x26; Dev</a></td><td>10.50M</td><td>Distributed Jan 2025</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-6-boost-marinade-s-growth-awareness-with-21m-mnde-budget-for-2025-initiatives/1701">MIP.6 Growth &#x26; Awareness</a></td><td>21.00M</td><td>Distributed Jan 2025</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-14-burn-5-50-of-mnde-total-supply/1909">MIP.14 Supply Burn</a></td><td>300.00M</td><td>Burned 2025</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-12-migrate-campaign-accelerate-marinade-native-tvl-growth-with-25m-mnde-budget/1876">MIP.12 Migrate Campaign</a></td><td>25.00M</td><td>Campaign ran Sep to Dec 2025, now closed</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-13-introduction-of-active-staking-rewards-program/1895">MIP.13 Active Staking Rewards</a></td><td>25.00M</td><td>2025 program, claiming window closed August 2026</td></tr></tbody></table>

**Active Programs (still in lab treasury)**

<table><thead><tr><th width="209">Program</th><th width="120.11114501953125">Allocation</th><th>Status</th></tr></thead><tbody><tr><td><a href="https://forum.marinade.finance/t/mip-7-marinade-earn-season-4/1709">MIP.7 Marinade Earn S4</a></td><td>~10.00M</td><td>Remaining active incentives (DAO)</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip15-activate-the-protocol-fees-flow-to-the-marinade-foundation-and-grant-100m-mnde-to-marinade-labs-for-operations/1922/5">MIP.15 Marinade Operation Grant</a></td><td>100.00M</td><td>Active for Labs operations, 1-year cliff</td></tr><tr><td><a href="https://forum.marinade.finance/t/grant-request-allocate-46m-mnde-contributors-budget-for-16m-sol-tvl-milestone/560">Team / Advisors Milestone (16M SOL)</a></td><td>46.00M</td><td>Not vested; conditioned on 16M SOL TVL (Labs Treasury)</td></tr><tr><td><a href="https://forum.marinade.finance/t/mip-22-mnde-liquidity-and-staking-rewards/1993">MIP.22 MNDE Staking Rewards</a></td><td>10% of protocol revenue, ongoing</td><td>Passed; buybacks running, Q3 2026 rewards claimable until 1 April 2027</td></tr></tbody></table>

***

### Where to get the MNDE token

MNDE is available for trading on leading Solana DEXs. MNDE is also available on central exchanges like [Coinbase](https://www.coinbase.com/), [Crypto.com](https://crypto.com/price/mnde) and [Gate](https://www.gate.com/).

* Trade MNDE on [Meteora](https://app.meteora.ag/)
* Trade MNDE on [Raydium](https://raydium.io/swap/)
* Trade MNDE on [Orca](https://www.orca.so/)
* Route across all of them with [Jupiter](https://jup.ag/)
* View MNDE on [Coingecko](https://www.coingecko.com/en/coins/marinade)
* View MNDE on [CoinMarketCap](https://coinmarketcap.com/currencies/mnde/)

**References:**

* [Marinade Realms Governance](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo/proposals)
* [MNDE governance stats on Realms](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo/token-stats)
* [Marinade Forum](https://forum.marinade.finance/)
* [Marinade Stats](https://stats.marinade.finance/d/sqUQd1Onk/marinade-kpi-dashboard?orgId=1\&refresh=1m)


# MNDE Governance

Marinade is governed by people that lock MNDE and obtain veMNDE.

## DAO Constitution

Marinade is owned by MNDE holders that lock their tokens in [Realms](https://app.realms.today/dao/MNDE) to obtain veMNDE. In a previous vote, MNDE holders ratified this [Constitution](https://forum.marinade.finance/t/marinade-dao-constitution/468) that highlights the goals of Marinade as a DAO.

**1. The Marinade DAO builds a censorship-resistant layer of Solana**

The DAO builds the risk-management infrastructure to provide improved security and capital efficiency for the Solana network and the users through SOL liquid staking. Marinade governance will support development connected to the censorship resistance and liveness topic. It will support the ecosystem to build on top of Marinade but will not pursue building its second-layer DeFi primitives such as lending protocols, stablecoin, DEX, options, etc.

**2. Separation of powers**

To allow flexibility and predictability, the critical system parts are owned by the Marinade governance, and the operational control and funding are granted to the core team.

* Marinade Governance (MNDE token holders + ecosystem council): main program upgrade, MNDE treasury
* Marinade Core Team (team council): main program params, DAO program, fees

**3. Fees usage**

The primary usage of fees is to fund the team operations and further protocol development. The excess of fees accumulated is governed and decided by the DAO.

**4. MNDE distribution goals**

The incentives should be aligned with the objectives of the DAO. Starting with the fair launch, the Marinade governance plans to keep continuity in its objective for the DAO ownership to be well-spread in the ecosystem to benefit all the actors powered by secure Solana.

**5. Amendments to this constitution by majority vote**

Any change may be made to this constitution only by a two-thirds majority and at least 1% of all tokens participating.

***

### DAO Structure

As planned by the constitution above, Marinade has split the powers and responsibilities in the following way:

**MNDE holders** - *All MNDE holders that locked their MNDE to obtain governance power*

* Ownership of Marinade's treasury
* Ownership of the upgrade authority and admin parameters for Marinade Native, validator bonds, Recipes, gauges and the rest of the contract surface

The **main mSOL liquid staking program** is the exception. Its upgrade authority still sits on the Solana ecosystem multisig rather than with the DAO. See Multisig governance.

**Marinade Council** - *A set of 5 contributors elected internally to drive operations, holding a 3-of-5 multisig on Realms.*

* Power to update the contract parameters (see this)
* Use the protocol fees to conduct operations
* Access to Marinade's operational wallet (containing earmarked budgets voted on by the DAO)

The same five contributors also form the **Emergency Pause Council**, which holds pause authority on the main mSOL program and on validator bonds under a separate 3-of-5 threshold.

The five seats are verifiable: the DAO's council mint `6MGwpuJ5YE1c8jJaF8FKurQdDJeYRf1adX76dovkXxRs` has a supply of exactly 5, at zero decimals, so five council tokens exist and five seats are filled.

{% hint style="info" %}
Marinade considers that all governance participants agree to follow this [Code of Conduct](https://forum.marinade.finance/t/marinade-dao-code-of-conduct/470), ratified by the DAO.
{% endhint %}

***

### Lock MNDE for veMNDE

To participate in Marinade's governance and benefit from MNDE's utility, lock your MNDE on [Marinade's governance page](https://app.marinade.finance/governance/) to obtain veMNDE, which is the recommended route. Locking directly in Realms performs the same on-chain action. Unlocking your tokens to get back your MNDE will start a 30-day unlock process.

When locking your MNDE, **make sure to choose the following settings:**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FktJ5vMNymXRrDTX6oOT7%2Fimage.png?alt=media&#x26;token=dfba016b-beb8-49c7-b9cc-0991105b838c" alt="" width="326"><figcaption><p>Make sure to set the lockup time and the number of days before confirming the transactions.</p></figcaption></figure>

{% hint style="danger" %}
Realms offer two options, "Deposit" and "Lock tokens". Make sure to only use "Lock tokens" as depositing tokens will not give you any voting power in Marinade governance.
{% endhint %}

{% hint style="info" %}
**Your voting power tracks your remaining lock time.** It is calculated from how long your lock still has to run, up to a 30-day maximum. That means it **decays gradually while you are unlocking** rather than disappearing the moment you start. **You can still vote during the 30-day unlock period**, with progressively less weight as the period runs down.
{% endhint %}

{% hint style="warning" %}
If you still hold a Marinade Chef NFT with locked MNDE, there is no self-serve migration page any more. Open a support ticket in the Help Center or on Discord with your wallet address and a screenshot of what you hold, and the team will handle it case by case.
{% endhint %}

Once your wallet has locked MNDE tokens in Realms, you can use your veMNDE power to vote on proposals from [Marinade's governance page](https://app.marinade.finance/governance/) or directly in [Realms](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo/proposals).

***

#### Realms setup

Marinade's Realms is configured with the following parameters:

| Role                           | Address                                        |
| ------------------------------ | ---------------------------------------------- |
| Realm (pubkey)                 | `899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo` |
| Authority                      | `FsrqQfLGdFVtySSSsyZJUzVBA9bvGZSKyhp7nsJCqgJe` |
| Owner (SPL governance program) | `GovMaiHfpVPw8BAM1mbdzgmSZYDw2tdP32J2fapoQoYs` |
| Community mint (MNDE)          | `MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey`  |
| Council mint                   | `6MGwpuJ5YE1c8jJaF8FKurQdDJeYRf1adX76dovkXxRs` |
| Voter Stake Registry program   | `VoteMBhDCqGLRgYpp9o7DGyq81KNmwjXQRAHStjtJsS`  |
| VSR registrar                  | `5zgEgPbWKsAAnLPjSM56ZsbLPfVM6nUzh3u45tCnm97D` |

All subgovernances and their parameters can be consulted on [this page](https://app.realms.today/dao/MNDE/params).

***

#### FAQ

**Where are governance items discussed and how do I find out about them?**

Governance topics will always be discussed on [Marinade Forum](https://forum.marinade.finance/) to be thoroughly analysed. Once the discussion has been finalized, it can be submitted for a vote.

There will also be announcements on Marinade's [Discord](https://discord.gg/yTdH8YkYKg) when a proposal is active and can be voted on. Our Discord is also an excellent place to talk about ongoing governance proposals.

**Where can I trade MNDE?**

MNDE tokens can be acquired or sold on any DEX in the Solana ecosystem. We recommend using [Jupiter aggregator](https://jup.ag/) to find the best prices.

**Where do I lock MNDE?**

On [Marinade's governance page](https://app.marinade.finance/governance/), which is the recommended route. You can also lock directly in Realms, where you must choose Lock tokens, not Deposit.

**What is veMNDE?**

veMNDE is the representation of your governance power in Marinade DAO. Locking MNDE in Realms results in your wallet having veMNDE power.

veMNDE is not a fungible SPL token you can trade or see in your wallet.

**Can I vote while my MNDE is unlocking?**

**Yes.** Voting power is derived from your remaining lock time, so it decreases steadily across the 30-day unlock rather than dropping to zero when you start. Halfway through the period you still hold roughly half the weight of a full lock.

**What should I do with my Chef NFTs?**

Marinade Chef NFTs are long deprecated and there is no longer a self-serve page for migrating them. If you still hold one, open a support ticket with your wallet address, a screenshot of what you hold and what you want to do. Responses can take longer than usual because each position is handled individually.


# Official Links

If you want to join us, here is where you can find us!

These are the only official Marinade channels. If a link, wallet prompt or support request reaches you from anywhere else, it is not from Marinade.

{% hint style="danger" %}
**Marinade will never DM you first, never ask for your seed phrase or private key, and never ask you to "validate", "sync" or "migrate" your wallet.** Support does not happen in direct messages. Always reach the app through `app.marinade.finance` and check the domain before connecting a wallet. Anyone who contacts you claiming to be Marinade support is a scammer.
{% endhint %}

***

## Use Marinade

Staking app: <https://app.marinade.finance/>

Main website: <https://marinade.finance/>

***

## Interact With Us

Discord: <https://discord.gg/yTdH8YkYKg>

X: <https://x.com/MarinadeFinance>

YouTube: <https://www.youtube.com/@marinadefinance>

Forum: [https://forum.marinade.finance/](https://forum.marinade.finance)

***

## Follow Our Work

Blog: <https://marinade.finance/blog/>

Documentation: <https://docs.marinade.finance/>

Help center: <https://help.marinade.finance/>

GitHub organisation: <https://github.com/marinade-finance>

Audits: <https://docs.marinade.finance/marinade-protocol/security/audits>

Press kit: <https://docs.marinade.finance/partnerships/marinade-press-kit>

***

## Data And Dashboards

Marinade Stats: [https://stats.marinade.finance/](https://stats.marinade.finance)

Validator explorer: <https://app.marinade.finance/explore/>

Protected Staking Rewards validator dashboard: <https://psr.marinade.finance/>

Governance and DAO treasury on Realms: <https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo>


# Protocol Overview

Marinade Finance was built to bring to life a vision. A non-custodial liquid staking solution on Solana, decentralizing the network.

### What Can You Do on Marinade?

Marinade offers flexible staking options and tools to manage your SOL across different formats:

#### [Marinade Native](#marinade-native)

Stake SOL or deposit a stake account directly into Marinade while retaining full control. Your stake stays entirely on-chain in stake accounts your own wallet owns, and is automatically delegated through Marinade's **Stake Auction Marketplace**, which matches stake with high-performing validators in a permissionless, market-driven process.

You can also migrate your existing native staked accounts into Marinade to benefit from automated delegation and performance optimization.

#### [Marinade Select](#marinade-select)

A premium staking set powered by Marinade. It includes a vetted group of community-recognized validators that meet strict criteria for performance, compliance, and decentralization.

{% hint style="warning" %}
**Marinade Select is not currently available to stake to.** Staking new SOL to Select is not offered in the app at the moment. Existing Select positions are unaffected: they keep earning and can still be unstaked at any time. To stake new SOL today, use **Marinade Native**.
{% endhint %}

#### [Marinade Liquid](#marinade-liquid)

Stake SOL or deposit a stake account to receive mSOL, a liquid staking token that can be used throughout the Solana DeFi ecosystem.

You can also swap other liquid staking tokens into mSOL, or convert mSOL and other staking positions back to SOL through immediate or delayed unstaking.

#### [Marinade Recipes](#marinade-recipes)

Stake SOL the Marinade Native way, but have your staking rewards paid out in a token of your choice instead of SOL. Your stake accounts stay in your own wallet.

#### [USDC Earn Vault](#usdc-earn-vault)

Deposit USDC into a curated lending vault and earn on stablecoins, with no lockup and instant withdrawal. Withdrawals depend on available liquidity in the underlying lending markets and can be limited when utilization is high.

#### [Marinade Borrow](#marinade-borrow)

Borrow against your mSOL without unstaking or converting it first.

#### [Instant Unstake](#instant-unstake)

Exit a staking position in a single transaction instead of waiting out the unlock period, at a market-set rate. On native stake, Instant Unstake needs a position of 1 SOL or more. mSOL has no such minimum.

***

#### What's So Special About Marinade Native?

Marinade Native provides a secure, non-custodial staking experience with:

* Full ownership of your SOL at all times. Your wallet keeps the **withdraw authority**, so only you can move the SOL out
* No Marinade contract ever holds your SOL. Marinade takes only the **stake authority**, which can delegate, split and merge your stake accounts but can never withdraw from them
* Automatic validator delegation and rebalancing
* Redelegate existing stake accounts without unstaking
* Unstake anytime, with two exits. **Instant Unstake** returns SOL in a single transaction at a market-set rate and needs a position of 1 SOL or more on native stake. **Delayed Unstake** works at any size on Marinade Native and Select (mSOL has a 1.0043 SOL minimum) and becomes claimable after one epoch. Native has no start-time cut-off. For mSOL, starting in the last 2 hours of an epoch makes the claim one epoch later
* Community-led governance through the Marinade DAO

{% hint style="info" %}
Marinade Native is **non-custodial**, not contract-free. Delegation is routed through Marinade's Native Staking Proxy program, which holds the stake authority through PDAs. See Marinade Native: API & SDK for the program and authority addresses.
{% endhint %}

There is no deposit fee and no ongoing management fee on Marinade Native. Exiting a position does carry a cost: see Fees and Pricing.

***

#### What's So Special About Marinade Liquid?

Staking with Marinade for mSOL offers several unique advantages:

* Stake SOL and receive mSOL, which grows in value with rewards
* Use mSOL in DeFi for collateral, trading, or yield strategies, including Marinade Borrow
* Convert an existing stake account into mSOL, if it is delegated to a validator in Marinade's validator set (otherwise migrate it to Marinade Native)
* Trade mSOL on secondary markets at market rates
* **No performance fee on staking rewards.** Marinade takes 0% of the rewards the pool earns

Delayed unstaking of mSOL carries a **0.2%** protocol fee. See Fees and Pricing.


# Marinade Native

Marinade native is a tool to have your staked SOL managed and optimized automatically by Marinade's delegation strategy.

## What is Marinade Native?

Marinade Native is an alternative to liquid staking that allows users to benefit from an automated delegation strategy while keeping their SOL in stake accounts their own wallet owns. It differs from liquid staking on the following points:

* Marinade Native **leverages native Solana stake accounts** rather than a staking pool. No Marinade contract ever holds your SOL
* When using Marinade Native, you **retain the withdraw authority** over your stake accounts and stay the only party that can withdraw your SOL at any time. Marinade holds only the stake authority, which can delegate, split and merge stake accounts but can never withdraw from them
* Marinade Native does not charge any deposit fee or ongoing management fee
* You **do not receive mSOL** when using Marinade Native. You are creating Solana stake accounts in your wallet and delegating the management of those to Marinade
* Since you are staking natively when using Marinade Native, **rewards are directly sent to each of your stake accounts at the end of every epoch** (about every day and a half)

{% hint style="info" %}
Marinade Native is **non-custodial**, not contract-free. Delegation is routed through Marinade's Native Staking Proxy program, which owns the stake authority through PDAs so that Marinade's Council can rotate the bot's access. The custody guarantee comes from the authority split, not from the absence of a program. See Marinade Native: API & SDK.
{% endhint %}

### How to use Marinade Native?

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2Fz30U2v7yNMmid4pXKJtN%2Fimage.png?alt=media&#x26;token=ce312575-f401-4020-9b6b-2607b14e0613" alt=""><figcaption></figcaption></figure>

To use Marinade Native, click on "Stake" for your SOL and select the desired strategy options, then confirm the transaction.

You can also redelegate existing stake accounts to Marinade Native by selecting them in Marinade's dApp, choosing "Native" and confirming the transaction.

### Why Should I Use Marinade Native?

Marinade Native allows you to benefit from an optimized delegation strategy reaching top-performing validators. Your **staking position is automatically monitored and rebalanced for no management fee and delegated to the best validators on the network**, without having to monitor or manage it yourself. A stake account under 2 SOL moves as a whole block when rebalanced, since Solana requires a minimum of 1 SOL per stake account. A position made up of small accounts can see its next reward delayed by more than one epoch. This does not apply to positions paid in a Recipe reward token, which are not rebalanced between validators.

Marinade Native allows you to futureproof your staking position so it's always delegated to a wide range of top-performing validators, even if the best-performing validators change over time. It also considers any revenues from MEV (or any other sources), and will identify the validators extracting and redistributing the most value to their stakers for you.

It also **protects you from commission rugging** (validators stealing their delegators' rewards by changing their commission), the **validator(s) you chose going offline or running an outdated client**, etc.

Slashing is also bound to be added to Solana and having your staked SOL monitored and rebalanced to avoid bad-performing and/or nefarious validators will be one of the best ways to mitigate the slashing risks.

{% hint style="success" %}
Marinade Native can also be used with **locked SOL.** Make sure you optimize and automate it with Marinade Native until it gets unlocked!
{% endhint %}

#### Is There a Minimum to Use Marinade Native?

You can use Marinade Native with as little as 1.0046 SOL. Nonetheless, Marinade will never create smaller stake accounts than 1 SOL, so your stake will not be split across a hundred validators but will stay delegated to a lower number of validators with stake accounts of 1 SOL each.

We recommend using Marinade Native with at least 100 SOL to get your stake fully distributed.

#### Can I Unstake at Any Time?

Yes. When you exit your Marinade Native position you have two options:

**Instant Unstake (Sell Your Native Stake Now)**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FBVnsmr9XETSoV6U7uJmM%2Fimage.png?alt=media&#x26;token=4d3294b3-dd0e-44fe-a781-7e4adc99e968" alt="" width="522"><figcaption></figcaption></figure>

Instant Unstake lets you convert your natively staked SOL back to liquid SOL in a single transaction, without waiting for the usual 1 epoch cooldown.

When you choose this option in the app:

* Marinade detects eligible native stake accounts in your wallet (including Marinade Native positions).
* A market maker provides a quote, and the UI shows an **estimated amount of SOL** you would receive.
* You can review the quote and decide whether to accept it.

Two conditions apply. Instant Unstake needs a position of **1 SOL or more**, and the stake account has to be at least **2 epochs old**. Below 1 SOL, or on a stake account that is still too young, use Delayed Unstake instead, which has no minimum.

The received SOL amount is lower than the nominal stake balance. The difference is set by the market, not by Marinade, and varies with liquidity conditions. On native positions it is typically **0.10% to 0.40%**. If you're not comfortable with the quote, you can always switch to Delayed Unstake instead.

**Delayed Unstake (Standard Unlock Period)**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FsYeHXmDmr9yXgwMajxFk%2Fimage.png?alt=media&#x26;token=1374810e-ecaa-456a-9dbc-a2303bb34c8c" alt="" width="511"><figcaption></figcaption></figure>

If you prefer to avoid any quote or price impact, you can use Delayed Unstake:

* Marinade schedules your stake accounts to deactivate at the next epoch boundary.
* Your SOL (plus any rewards up to that point) becomes claimable after **1 epoch**.
* The app shows an estimated time for when your SOL will be ready to claim.

Delayed Unstake carries a **flat fee of 0.003 SOL**, whatever the size of the position. It is charged from your wallet's SOL balance, not deducted from the amount you unstake. The fee covers Marinade deactivating and merging your stake accounts on your behalf, and it prevents draining attacks on that service. It is the same flat amount for Marinade Native, Marinade Select and Native positions paid in a Recipe reward token.

{% hint style="info" %}
Claiming is a separate Solana transaction. Keep a small SOL balance in your wallet so the claim does not fail on network fees.
{% endhint %}

### Is Marinade Native safe?

By keeping your SOL in stake accounts your own wallet owns and leaving the withdraw authority with you, Marinade Native removes several risks.

Since Marinade Native never holds the authority to withdraw your SOL, **its only power is to delegate your stake to different validators in the cluster**.

Marinade Native relies on Marinade's delegation strategy, which is crafted to spread your stake among top-performing validators while accounting for network decentralization. There are also technical backstops, described in Marinade Native: API & SDK, to ensure that Marinade Native will always do the best for your staking position.


# Marinade Native: API & SDK

## Technical Overview

Marinade Native leverages Solana's [stake account structure](https://docs.solana.com/staking/stake-accounts). As explained in Solana's documentation, stake accounts have two different authorities that can belong to separate addresses: the stake authority and the withdraw authority.

> The *stake authority* is used to sign transactions for the following operations:
>
> * Delegating stake
> * Deactivating the stake delegation
> * Splitting the stake account, creating a new stake account with a portion of the funds in the first account
> * Merging two stake accounts into one
> * Setting a new stake authority
>
> The *withdraw authority* signs transactions for the following:
>
> * Withdrawing un-delegated stake into a wallet address
> * Setting a new withdraw authority
> * Setting a new stake authority

Marinade Native was designed to receive the *stake authority* of the user's stake account without touching the withdraw authority that stays assigned to the user's wallet.

The stake authority that Marinade uses is a PDA of the **Native Staking Proxy program**. The program allows a Marinade bot to call delegation instructions on behalf of this PDA. This way, Marinade's Council multisig (3 of 5) can revoke the bot's access and create a new one if needed.

#### How Does the Unstake Work?

Staking on Solana is subject to a cooldown period. When a stake account is delegated, the stake account has to be deactivated first. Then, at the beginning of the next epoch (epochs currently run about a day and a half), the user holding the withdraw authority can withdraw funds from the stake account.

Users of this product always maintain ultimate power over the stake accounts and can revoke the stake authority previously granted to Marinade using most wallets.

However, Marinade splits the stake between over 100 validators to spread the risk and support well-performing validators. Therefore, it would be inconvenient for our users to revoke the stake authority, deactivate and withdraw each of the stake accounts one by one.

Marinade has thought of this, and users can use the dApp to help them with the withdrawal. Marinade will prepare the stake accounts for withdraw on your behalf.

* Users ask for the amount of SOL they want to withdraw.
* We deactivate stake accounts amounting to how much users want to withdraw.
* We merge deactivated stake accounts at the beginning of the next epoch, so there is a single deactivated stake account.
* Users can withdraw funds in a single transaction.

To avoid some draining attacks (as Marinade pays for deactivation, and timely merging of all the stake accounts), a **flat fee of 0.003 SOL** is applied for this service. It does not scale with the amount being unstaked, and it applies equally to Marinade Native, Marinade Select and Native positions paid in a Recipe reward token.

{% hint style="info" %}
This can be integrated easily through the SDK.
{% endhint %}

#### **Does Marinade Native Support Locked-Up Stake Accounts?**

Yes.

When users give Marinade stake authority over stake accounts with different lockup periods and users then want to withdraw some part of the stake, Marinade prioritizes the unlocked stake accounts and then stake accounts with the shortest lockup periods.

***

### Marinade Native On-Chain Addresses

| Role                                         | Address                                       |
| -------------------------------------------- | --------------------------------------------- |
| Native Staking Proxy program                 | `mnspJQyF1KdDEs5c6YJPocYdY1esBgVQFufM2dY9oDk` |
| Stake authority, Marinade Native (Max Yield) | `stWirqFCf2Uts1JBL1Jsd3r6VBWhgnpdPxCTe1MFjrq` |
| Exit authority, Marinade Native (Max Yield)  | `ex9CfkBZZd6Nv9XdnoDmmB45ymbu4arXVk7g5pWnt3N` |
| Stake authority, Marinade Select             | `STNi1NHDUi6Hvibvonawgze8fM83PFLeJhuGMEXyGps` |

The stake authority manages the delegation of all stake accounts for its product flavour. The exit authority prepares and merges the stake accounts of users who requested an unstake.

These authorities are PDAs derived from the proxy program, so no private key exists for them, and they are controlled and can be changed by Marinade's Council.

{% hint style="warning" %}
**Do not enumerate Marinade Native positions by a single stake authority.** Marinade Native spans several staker authorities: Max Yield, Marinade Select, and one authority per Marinade Recipe (the `stR...` set, which grows as new recipes launch). Filtering stake accounts on `stWirqFCf2Uts1JBL1Jsd3r6VBWhgnpdPxCTe1MFjrq` alone silently misses every Select and Recipe position. Fetch the current authority set rather than hardcoding it.
{% endhint %}

***

### Marinade Native API

Base URL: `https://native-staking.marinade.finance`

<table><thead><tr><th width="77.5999755859375">Method</th><th>Endpoint</th><th>Purpose</th></tr></thead><tbody><tr><td><code>GET</code></td><td><code>/v2/{stake_authority}/apy</code></td><td>APY history for a stake authority</td></tr><tr><td><code>GET</code></td><td><code>/v2/{stake_authority}/tvl</code></td><td>TVL for a stake authority and withdraw authority</td></tr><tr><td><code>GET</code></td><td><code>/v2/{stake_authority}/user-rewards</code></td><td>Rewards earned by a user's stake accounts</td></tr><tr><td><code>GET</code></td><td><code>/v2/{stake_authority}/pending-revokes</code></td><td>Stake accounts pending a stake-authority revoke</td></tr><tr><td><code>POST</code></td><td><code>/v2/{stake_authority}/prepare-for-revoke</code></td><td>Prepare stake accounts for a revoke</td></tr><tr><td><code>POST</code></td><td><code>/v2/{stake_authority}/rebalance-hint</code></td><td>Tell the delegation backend that new stake has arrived</td></tr></tbody></table>

`{stake_authority}` is one of the addresses in the table above. The `rebalance-hint` call is an off-chain advisory and is not required for correctness: the periodic scanner picks up new stake accounts at the next epoch boundary regardless.

{% hint style="warning" %}
The `/v1/` routes are gone. Use `/v2/` only.
{% endhint %}


# Marinade Select

Marinade Select is a curated set of trusted Solana validators offering secure, decentralized, and capital-efficient staking.

{% hint style="warning" %}
Staking to Marinade Select is temporarily unavailable in the app while improvements are made. Existing Select positions are unaffected: they keep earning rewards, stay in stake accounts owned by your own wallet, and can be unstaked at any time. To stake new SOL today, use [Marinade Native](/marinade-protocol/protocol-overview/marinade-native).
{% endhint %}

### What Is Marinade Select?

Marinade Select is a premium staking set powered by Marinade. It includes a vetted group of community-recognized validators that meet strict criteria for decentralization, performance, and compliance.

Unlike Marinade’s open **Stake Auction Marketplace (SAM)**, Marinade Select is invite-only and excludes:

* Superminority validators (those with outsized influence on network consensus)
* Validators on community or Marinade blacklists
* Participants engaging in harmful MEV practices (e.g., sandwich attacks)

***

### Why Marinade Select?

Marinade Select delivers:

* **High-Quality Validators:** Each validator is vetted for decentralization, performance, and transparency.
* **Protected Staking Rewards (PSR):** Validators cover penalties and rebalancing costs to safeguard user returns.
* **Smart Rebalancing:** Stake is actively managed to optimize efficiency and avoid unnecessary costs.
* **Institutional Readiness:** Fully compliant validator set suitable for regulated entities and large-scale stakers.

#### Validator Bonds

All validators in the Select set are required to maintain a **bond** denominated in SOL. This bond:

* Covers **performance penalties and rebalancing costs** if a validator leaves the set.
* Helps align validator incentives with staker outcomes.
* Is automatically **delegated** to the validator to earn yield.

**Bond Requirements:**

* Coverage Ratio: 1 SOL per 2,000 SOL staked
* Source: SOL (locked and delegated through Marinade’s infrastructure)

***

### How It Works

<table data-header-hidden><thead><tr><th width="155.37774658203125"></th><th></th></tr></thead><tbody><tr><td><strong>Component</strong></td><td><strong>Details</strong></td></tr><tr><td><strong>Select Set</strong></td><td>A curated list of verified validators. Participation requires identity verification, bonding, and ongoing performance standards.</td></tr><tr><td><strong>Validator Bond</strong></td><td>Validators post a bond (~1 SOL per 2,000 SOL staked) used to protect staker returns and cover rebalancing costs.</td></tr><tr><td><strong>New Stake Flow</strong></td><td>Staking to Select is temporarily unavailable. When it is available, new deposits are distributed evenly across the Select set or allocated to underweighted validators based on individual user positions.</td></tr><tr><td><strong>Unstaking</strong></td><td>Selective unstaking from a subset of validators minimizes capital inefficiencies. Remaining stake is gradually rebalanced over time.</td></tr><tr><td><strong>Rebalancing</strong></td><td>Rebalancing occurs in epochs and ensures users maintain proportional exposure across the set without impacting APY.</td></tr></tbody></table>

### Stake Distribution & Rebalancing

Marinade Select employs **smart stake flow management** to preserve APY and user experience:

**New Stake**

* Automatically allocated evenly or fills gaps across validators with lower relative TVL.
* Ensures balanced exposure and fairness across the Select set.

**Unstaking**

* SOL is withdrawn from a limited number of validators to reduce operational overhead.
* Remaining stake is rebalanced over time to maintain user allocation consistency.

This dynamic system avoids fragmentation and improves long-term capital efficiency.

***

### Validator Expectations

To remain in Marinade Select, validators must:

* Maintain **high performance and uptime**
* Operate in compliance with **Marinade’s security and operational standards**
* Respond promptly to events such as incoming stake or low bond balance alerts

Non-compliance can lead to removal from the set and loss of bond funds.

#### Resources

* **Monitor Stake Distribution:** [select.marinade.finance](https://select.marinade.finance/)
* **Validator Bond CLI:** [npm package](https://www.npmjs.com/package/@marinade.finance/validator-bonds-cli-institutional)
* **CLI Source Code:** [GitHub Repository](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli-institutional)

***

### Frequently Asked Questions

**Q: Can I join Marinade Select if I’m already in the Stake Auction Marketplace?**

Yes, but you’ll need to complete a separate vetting process, pass KYC, and post a validator bond specific to Marinade Select.

**Q: What happens if I want to exit Marinade Select?**

You’ll need to notify the Marinade team. Once your validator is removed from the Select set, you can initiate the bond withdrawal process.


# Marinade Recipes

Stake SOL and receive your rewards in a token of your choice instead of more SOL. Principal stays in SOL. Also called Customized Rewards.

{% hint style="info" %}
Marinade Recipes are also referred to as **Customized Rewards**. Both names describe the same feature. This page uses "Recipes."
{% endhint %}

{% hint style="info" %}
**TL;DR:** Marinade Recipes lets you stake SOL and receive your staking rewards in a token of your choice, from stablecoins like USDG and USDC to BTC, ETH, gold, MNDE, and tokenized equities, instead of more SOL. Your SOL principal stays in SOL the whole time; only the yield is converted, and payouts arrive automatically each epoch.
{% endhint %}

## Overview

Marinade Recipes lets you stake SOL and receive your rewards in a different token instead of more SOL. Your SOL principal stays in SOL the whole time. Only the staking yield is converted, each epoch, into the payout token you picked.

The idea is simple: keep your SOL exposure on the principal, but skip the loop of unstaking, swapping, and restaking each epoch just to convert rewards into the token you actually want.

Recipes launched with a single payout token and now support a range of them across several categories, with more planned.

### How It Works

{% hint style="warning" %}
**Open a token account for your payout token, and keep it open.** Payouts are SPL token airdrops, so your wallet must have an account for the payout token before rewards can arrive. Marinade does not open this account for you. Create it before or shortly after staking, then leave it open. If it is closed, payouts pause. Up to 2 weeks of missed payouts are recovered automatically once you reopen it, and anything older than 2 weeks is permanently lost.
{% endhint %}

A Recipe is a Marinade Native position with a reward token other than SOL selected. It works like this:

* **Your SOL stays in SOL:** Your deposit goes into native Solana stake accounts managed by Marinade's program and is delegated to validators. The principal is never swapped. You keep full price exposure to SOL.
* **Only the yield is converted:** Each epoch, the program collects staking rewards from the participating stake accounts, converts them on-chain into your chosen payout token, and distributes the result proportionally to stakers.
* **One payout token per position, changeable anytime:** Each position pays out in one token. You choose it when you stake, and you can change it later without unstaking. To receive more than one token at once, hold separate positions.
* **Payouts arrive each epoch:** The payout token is delivered to your wallet (or a redirect wallet you choose) around the start of each new Solana epoch. A Solana epoch currently runs about **a day and a half**, and that length drifts with block times. See the FAQ below.

Recipes don't use SAM (Marinade Max Yield) or Marinade Select. SAM and Select decide how stake is allocated across validators. A Recipe decides how that stake's rewards are converted and routed back to you. It's a different delegation path with its own infrastructure.

{% hint style="info" %}
Your SOL sits in standard native stake accounts. You keep full withdrawal authority, and no Marinade contract ever holds your SOL.
{% endhint %}

### Available Recipes

You pick your payout token when you stake. The currently available Recipes are below. For current APY and to get started, see the [Marinade Recipes product page](https://marinade.finance/features/marinade-recipes).

<table><thead><tr><th width="111.4000244140625">Payout Token</th><th width="175">Reward Asset</th><th width="211">Category</th><th>Issuer / Backing</th></tr></thead><tbody><tr><td>USDG</td><td>Global Dollar</td><td>USD stablecoin</td><td>Paxos, via the Global Dollar Network</td></tr><tr><td>USDC</td><td>USD Coin</td><td>USD stablecoin</td><td>Circle</td></tr><tr><td>USDT</td><td>Tether</td><td>USD stablecoin</td><td>Tether</td></tr><tr><td>EURC</td><td>Euro Coin</td><td>EUR stablecoin</td><td>Circle</td></tr><tr><td>BTC</td><td>cbBTC</td><td>Bitcoin</td><td>Coinbase</td></tr><tr><td>ETH</td><td>WETH</td><td>Ether</td><td>Wormhole-bridged</td></tr><tr><td>GOLD</td><td>Tether Gold (XAU₮)</td><td>Tokenized gold</td><td>Tether</td></tr><tr><td>MNDE</td><td>MNDE</td><td>Marinade governance token</td><td>Marinade</td></tr><tr><td>SPY</td><td>SPYx</td><td>Tokenized S&#x26;P 500 ETF</td><td>Backed (xStocks)</td></tr><tr><td>NVDA</td><td>NVDAx</td><td>Tokenized Nvidia stock</td><td>Backed (xStocks)</td></tr><tr><td>SPCX</td><td>SPCX</td><td>Tokenized SpaceX stock</td><td>SpaceX - Backpack Securities</td></tr></tbody></table>

More Recipes are planned. Updates go out on the product page and through official Marinade channels.

{% hint style="warning" %}
Payout tokens are issued by third parties, and each carries its issuer's own trust model. Some of them (for example USDG and the tokenized equities) can be paused or frozen by their issuer, which would pause reward delivery and exits in that token until the pause is lifted. If that happens, switch your reward token and payouts resume in the new token. Tokenized equities such as SPYx and NVDAx are issued by Backed and are generally available only to non-U.S. persons. None of this affects your SOL principal, which stays in native stake accounts you control. Confirm a payout token suits your needs before choosing it.
{% endhint %}

#### **Fees**

Recipes follow the same fee model as Marinade Native:

* **Yield matches native staking:** A Recipe earns the same staking yield as Marinade Native and mSOL, paid in your chosen token instead of SOL (subject to any active launch incentives or boosts noted on the product page).
* **No performance fee:** Marinade takes no cut of the rewards a Recipe earns. There is no deposit fee either.
* **Unstake fees:** Instant Unstake is priced by the winning market-maker quote and carries no separate Marinade protocol fee. Delayed Unstake carries a **flat 0.003 SOL fee**, the same as Marinade Native and Marinade Select, and it does not scale with position size.

#### **Unstaking**

Same two exit paths as Marinade Native:

* **Instant Unstake:** Available right away. Your stake account is sold into a marketplace of liquidity providers, and the amount you receive is set by the best quote. Marinade adds no separate protocol fee on top of that quote. The exact SOL you will receive is shown before you approve. It needs a position of **1 SOL or more**, on a stake account at least **2 epochs old**.
* **Delayed Unstake:** Standard Solana deactivation, with no minimum size. Stake is withdrawable after the cooldown, normally the start of the next epoch, for a **flat 0.003 SOL fee**. Marinade Native positions, including Recipes, have no cut-off: if you start before the epoch ends, you claim at the start of the next epoch.

Keep a small amount of SOL available in your wallet, around **0.03 SOL**, so you can pay the network fee on the unstake and on the later claim.

There's no separate "turn off rewards" switch. You exit by unstaking. Any rewards already earned stay in your wallet and are not affected.

See Marinade Instant Unstake for how both exit paths compare.

***

### Changing Your Reward Token

Every Marinade Native position has a reward token you can change at any time. You can switch from one reward token to another, or switch to or from SOL. Your SOL is never unstaked or returned to you during a switch.

To change it:

* Go to **Portfolio** and find your Marinade Native row under Earn positions.
* Open the **...** menu on that row and choose **Open detail**. That takes you to the Marinade Native page under Earn.
* Click the **asset dropdown** and choose the token you want.
* Confirm the change in your wallet.

{% hint style="warning" %}
Switching to or from SOL moves your stake between validators. This takes about one epoch, during which your stake does not earn rewards. If you switch very close to the end of an epoch, the change can miss that epoch's cutoff and take up to two epochs. Switching between two reward tokens (for example USDG to cbBTC) is seamless and does not interrupt your rewards.
{% endhint %}

How switching affects your stake:

* **Between reward tokens:** Switching from one token to another stays on the same validator with no interruption. Your stake keeps earning the whole time.
* **To or from SOL:** SOL rewards use Marinade's standard SOL staking across many validators, while a reward token uses a dedicated validator. Switching between them redelegates your stake, so your stake does not earn rewards for about one epoch (up to two if you switch right at the end of an epoch). To keep it to a single epoch, avoid switching in the final moments of an epoch.
* **Choosing SOL:** Setting your reward token to SOL returns the position to standard Marinade Native staking, so it is no longer a Customized Rewards position. You will not receive SOL airdropped to your wallet. Your SOL rewards auto-compound back into your staked position, so your stake grows rather than tokens arriving in your wallet.
* **Open the token's account:** For any payout token, your wallet needs that token's account open so payouts can land. This does not apply when you switch to SOL, since SOL compounds instead of being airdropped.

Good to know:

* **When it takes effect:** A reward-token change applies from the following epoch. Your current epoch rewards are paid in your previous token, and from the next epoch your rewards are converted to the new token and airdropped.
* **No switching fee:** Marinade does not charge a fee to switch. You pay only the standard Solana network transaction fee to submit the change, so keep around 0.03 SOL available.
* **No limit:** You can change your reward token as often as you like.
* **Native only:** Reward switching applies to Marinade Native positions. Marinade Select does not have it.

**Q: Does switching my reward token interrupt my rewards?**

A: It depends on the switch. Changing from one reward token to another is seamless and keeps earning without interruption. Switching to or from SOL redelegates your stake, so it does not earn rewards for about one epoch, or up to two epochs if you switch right at the end of an epoch.

**Q: When does my new reward token start?**

A: From the following epoch. Your current epoch rewards are paid in your previous token, and from the next epoch your staking rewards are converted to the new token and airdropped to your wallet.

**Q: Is there a fee to switch?**

A: Marinade does not charge a fee. You pay only the standard Solana network transaction fee to submit the change.

**Q: How often can I switch?**

A: As often as you like. There is no limit.

**Q: Does switching unstake my SOL?**

A: No. Your SOL stays staked and is never returned to you. Switching to or from SOL redelegates your stake, but it remains staked the whole time.

**Q: If I switch to SOL, will SOL be airdropped to my wallet?**

A: No. Switching to SOL returns your position to standard Marinade Native staking, and your SOL rewards auto-compound back into your stake rather than being paid to your wallet. Nothing is airdropped. To receive payouts in your wallet, choose a token other than SOL.

**Q: I cannot find an Edit rewards button.**

A: There isn't one. The reward token is set from the asset dropdown on the Marinade Native page under Earn. Reach it from **Portfolio**, the **...** menu on your Marinade Native row, then **Open detail**.

**Q: Which tokens can I switch to?**

A: SOL and any of the reward tokens available for Marinade Recipes (see the Available Recipes table).

**Q: Do I need a token account for the new reward token?**

A: Yes, for any payout token, so the airdrop can land. This does not apply if you switch to SOL, which compounds instead of being paid out.

***

### Security

Recipes use the same security model as Marinade Native:

* **Non-custodial:** Principal sits in native Solana stake accounts owned by the staker.
* **No Marinade contract holds your SOL:** Staking runs through the Native Staking Proxy program, which manages delegation, but you keep withdraw authority over your own stake accounts throughout. The reward pipeline only touches rewards after they have been earned. It never touches the staked SOL.
* **Bounded failure mode:** Worst realistic case is a delay in the swap or distribution step that pushes a payout to a later epoch. Principal is not at risk in the reward routing.

Full audit reports are on the Audits page.

***

### Frequently Asked Questions

**Q: Can I choose which token I'm paid in?**

A: Yes. You pick your payout token when you stake, and you can change it later without unstaking. Each position pays out in a single token, so to receive more than one token at once, hold separate positions.

**Q: When will I receive my first reward?**

A: Solana native staking requires your stake to be active for a full epoch before it earns rewards. If you deposit mid-epoch, your stake activates at the start of the next epoch, earns for that full epoch, and the first payout arrives around the start of the epoch after that.

**Q: The epoch just ended and I still haven't received my rewards. Is something wrong?**

A: No, this is normal. Rewards are processed in stages after each epoch ends: collect SOL rewards from stake accounts, swap to the payout token, then distribute. The whole pipeline runs on-chain and can take some hours, so there's a gap between the epoch boundary and the tokens hitting your wallet. If a full day has passed since the new epoch started and you still see nothing, check that your payout token account is still open (see the "payouts stopped" question below).

**Q: Can I have my rewards sent to a different wallet than the one I stake from?**

A: Yes, for every Recipe (Customized Reward). You can direct rewards to a wallet other than the one that holds your stake, which is useful for keeping staking and spending separate, routing rewards to an operations or treasury wallet, or sending them to a charity. You can set the destination address when you stake, and you can also set, change, or clear it at any time afterwards without unstaking. A destination chosen while staking applies to that Recipe. A destination set outside of staking applies to all Recipes, and a per-Recipe setting takes priority. Your staked SOL stays under your control either way. Make sure the destination wallet keeps an open token account for the payout token. The exception is the GOOD charity Recipe, which always sends your share to its collection wallet, so a reward wallet you set does not apply to it.

**Q: Is my SOL ever swapped for the payout token?**

A: No. Only the staking rewards are converted. Your principal stays in SOL the entire time. A small amount of slippage applies when the rewards themselves are swapped each epoch.

**Q: My payouts stopped. What happened?**

A: The most common cause is a closed payout token account in your wallet (often from a "sweep empty accounts" feature). Reopen it by receiving any amount of that token; even a tiny swap on a DEX such as Jupiter or Titan is enough. Up to 2 weeks of missed rewards are recovered automatically once the account is active again. Anything older than 2 weeks is lost. For more detail, see the help center article ["Why Did My Recipe (Customized) Staking Rewards Stop?"](https://help.marinade.finance/en/articles/14317979-why-did-my-recipe-customized-staking-rewards-stop).

**Q: Do my Recipe rewards show up in Marinade's staking rewards report?**

A: No. Marinade's staking rewards report covers SOL staking rewards and does not track Recipe payouts. To review what you have received, look up your wallet's activity on a Solana explorer such as [Solscan](https://solscan.io).

**Q: How are Recipe rewards treated for tax?**

A: Marinade does not provide tax advice, does not issue tax forms such as 1099s, and is not responsible for determining or meeting your tax obligations. How staking rewards are taxed depends on your country and your personal circumstances, and working that out is your responsibility. You can pull your reward transactions from a Solana explorer such as Solscan to build your own records, and various third-party crypto tax tools can help compile them. Marinade does not endorse or recommend any specific tool, since how well one fits depends on your situation. Consult a qualified tax professional in your jurisdiction.

**Q: Which tokens are supported, and which are coming next?**

A: The currently available payout tokens are listed in Available Recipes above. More are in development. Updates go out on the [Marinade Recipes product page](https://marinade.finance/features/marinade-recipes) and through official Marinade channels.

**Q: Do I need to open a token account to receive my rewards?**

A: Yes. Payouts are delivered as SPL token airdrops, so your wallet needs an open account for your payout token before rewards can land. Marinade does not open it for you. You can create it by receiving or swapping for any amount of the token (for example, a tiny swap on Jupiter or Titan), or through your wallet's token management. Keep the account open. If it is closed, payouts pause until you reopen it, and up to 2 weeks of missed payouts are recovered automatically once it is active again. Anything older than 2 weeks is permanently lost.

**Q: Why doesn't Marinade open the token account for me?**

A: Opening a Solana token account requires a small, refundable SOL rent deposit (roughly 0.0015 SOL, a little more for some tokens) that is returned when the account is closed. When Marinade funded these accounts automatically, some users repeatedly opened and closed accounts across many wallets to reclaim that Marinade-funded rent, extracting more SOL than their rewards were worth. To keep the system fair, Marinade no longer funds token accounts. Because you fund your own account now, the rent is simply your own SOL, returned to you if you ever close the account.


# Marinade Liquid

## What is Liquid Staking?

The idea behind liquid staking is to enable people to stake without losing access to the liquidity of their tokens. This takes place through tokenization and issuance of on-chain representations of staked assets - liquid staking tokens - that are a claim on the underlying staking positions.

When staking SOL to mSOL, you are not performing a swap between two different tokens as mSOL represents your original position. This process can be equated to wrapping a token or receiving a "proof-of-stake token" with the perk of being an SPL token, thus remaining liquid.

Liquid staking your SOL to mSOL is, in essence, the same operation as staking your SOL tokens. Since mSOL price (against SOL) is only impacted by staking rewards and nothing else, mSOL is not a speculative yield (when going from SOL to mSOL) but rather a way to diversify your stake and spread it across multiple validators in the Marinade stake pool, instead of locking your tokens into a single validator.

mSOL is only a token representing a staked position, which should not make it different from a staking operation regarding tax laws. Nonetheless, you should consult your local jurisdiction for tax clarity involving various cryptocurrencies.

### Why is Liquid Staking important?

In our opinion, liquid staking shines in solving the protocol design problems of PoS networks:

#### **Opportunity cost**

With a fully liquid staking token, users can freely participate in DeFi and generate another layer of rewards on top of staking yields. Users don’t have to choose between staking or depositing their liquidity into an AMM, lending protocol, etc. They can do both!

#### **Unbonding period**

Liquid staking tokens can be swapped for SOL right away, so you do not have to wait for the regular unbonding period. This is not free: Instant Unstake costs a market spread, and Delayed Unstake costs 0.2% and takes about one epoch.

#### **Reliance on a single validator**

Diversifying across multiple validators minimizes exposure and serves as slashing insurance against the malperformance of individual validator nodes. With Marinade's liquid staking solution, you can delegate your SOL to a multitude of validators rather than just one.

#### Liquid Stake SOL

[Liquid\_Stake\_Program](https://github.com/marinade-finance/liquid-staking-program/blob/de348a2779ef1659db7b42a190279ae8da16c125/programs/marinade-finance/src/state/deposit.rs#L27)

When you choose to 'Stake', these operations happen under the hood:

1. You deposit SOL in the reserve account.
2. Marinade takes this amount and accordingly increases the amount of stake orders falling under:
   1. current epoch (epoch\_stake\_orders)
   2. total staked (total\_stake\_orders)
3. Marinade mints mSOL for the user according to mSOL/SOL ratio.


# What is mSOL?

mSOL represents your staked SOL in the Marinade stake pool. Here's what that means and how it unlocks your liquidity.

## What Is mSOL?

mSOL is a liquid staking token that you receive when you stake SOL on the Marinade protocol. These mSOL tokens **represent your staked SOL tokens in Marinade's stake pool.**

They act as a receipt, allowing you to exchange them later on for your staked SOL and the earned rewards. Meanwhile, you can use mSOL in DeFi while the token's price accrues in value vs. the price of your SOL.

mSOL is a rewards-accruing liquid staking token. This means that after each Solana epoch (currently about a day and a half), its value is recalculated based on the staking rewards earned by the Marinade Stake Pool. The price of mSOL is calculated as follows:

> Price of mSOL = total\_staked / tokens\_minted

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FYRYWBuzqrl4rqFss0iME%2Fv3.png?alt=media&#x26;token=75668b5d-eb91-4d0c-8452-3faeebf58372" alt=""><figcaption></figcaption></figure>

As the protocol cannot mint new mSOL without SOL being exchanged for them, only the *total staked* amount is going up (for any new mSOL minted, the same amount of SOL, at the current price of mSOL, has to be staked and also joins the *total staked* amount).

This means that the price of mSOL is going up each epoch relative to SOL as long as staking rewards are distributed for the SOL staked in the protocol. If you keep mSOL for a year, its value against SOL will have gained roughly Marinade's APY over that period. For the current rate, see the app or [**stats.marinade.finance**](https://stats.marinade.finance).

Your mSOL **balance never changes**. There is nothing to claim. Rewards reach you through the exchange rate, so the same mSOL converts to more SOL over time.

#### Deposit an Existing Stake Account

[**Deposit\_Stake\_Account**](https://github.com/marinade-finance/liquid-staking-program/blob/main/programs/marinade-finance/src/stake_system/deposit_stake_account.rs)

When you choose 'Deposit stake account', these operations happen under the hood:

1. Marinade checks that the stake account is active and delegated to a validator in Marinade's validator set. A stake account delegated to any other validator cannot be converted to mSOL; migrate it to Marinade Native instead.
2. Marinade takes control of the delegated and fully active stake account by becoming staking and withdrawing authority.
3. Marinade takes this amount and accordingly increases the amount of stake orders falling under:
   1. current epoch (epoch\_stake\_orders)
   2. total staked (total\_stake\_orders)
4. Marinade mints mSOL for the user according to the mSOL/SOL ratio.

{% hint style="info" %}
To deposit a stake account it must contain at least 1 SOL, be fully active (not activating or deactivating) and have no active lockup. Locked SOL cannot be liquid staked; stake it with Marinade Native instead.
{% endhint %}

***

### How Do I Unstake mSOL?

You can exit your mSOL position in two ways.

<table><thead><tr><th width="160.800048828125">Option</th><th>What it costs</th><th>How long it takes</th></tr></thead><tbody><tr><td><strong>Instant Unstake</strong></td><td>No Marinade fee. It is a DEX swap, so you pay the route's fees, spread and price impact</td><td>Immediate</td></tr><tr><td><strong>Delayed Unstake</strong></td><td><strong>0.2%</strong> protocol fee</td><td>About 1 epoch</td></tr></tbody></table>

#### Instant Unstake (Swap via Jupiter)

Instant Unstake for liquid staking is effectively a swap:

* In the app, choosing the **instant** option routes your mSOL to SOL through a DeFi swap (via Jupiter).
* You are trading mSOL for SOL at the current market rate.
* The UI shows the **estimated SOL you will receive**, including any DEX fees and price impact.

Marinade does not charge an unstake fee on this path. The difference between the quote and mSOL's true price is market cost, not a protocol fee. This option is best when you want your SOL back immediately and are comfortable with the current market rate for mSOL to SOL. Because it's a swap, very large trades can move the price and result in some slippage. Instant Unstake has no minimum, so it is the exit for mSOL below the Delayed Unstake minimum of 1.0043 SOL.

#### Delayed Unstake

[Delayed\_Unstake](https://github.com/marinade-finance/liquid-staking-program/blob/de348a2779ef1659db7b42a190279ae8da16c125/programs/marinade-finance/src/state/order_unstake.rs#L66)

Delayed Unstake carries a **0.2% protocol fee**, taken proportionally from the amount you unstake.

When you choose 'Delayed Unstake', these operations happen under the hood:

1. You are given a claim ticket indicating the amount and due time of your unstake.
2. mSOL is burnt and removed from the supply.
3. The unstake operation is launched and performed by the bot.
4. In due time, you will be able to claim your SOL and destroy the claim ticket in exchange.

Delayed Unstake is useful for larger amounts that a swap would move the price on, or when you do not mind waiting for the unstaking period.

**Example of Delayed Unstake at Epoch N:**

![There are 3 moments in an epoch for Marinade. The beginning of an epoch, the epoch itself, and the last hours before the end of an epoch. These 3 moments have an impact on the Delayed Unstake function.](https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FZDyhrJtyszzrkaZRY3nL%2FDelayedUnstake.png?alt=media\&token=7bcadef4-d3c7-4433-8313-08eb5f5fcb7b)

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 2 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 2 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.

{% hint style="info" %}
An epoch currently lasts about a day and a half on the Solana blockchain, and the exact length varies with slot times. You can follow the progress of the current epoch directly in the [Marinade app](https://app.marinade.finance/).
{% endhint %}

***

### Do I Need to Claim My Rewards?

No. Your staking rewards are already inside the value of your mSOL, and they compound automatically. There is no claim button and no deadline.

You realize those rewards in SOL when you unstake. If you choose **Delayed Unstake**, you must return to the Marinade app and click **Claim** on the position once the countdown ends. If you choose **Instant Unstake**, the SOL arrives in your wallet in the same transaction.

***

### Is mSOL Safe?

As long as the Marinade protocol earns staking rewards and you hold mSOL, your SOL stake is growing. So how does Marinade ensure that the protocol is safe?

Marinade has undergone a series of audits to ensure the code cannot be exploited. Many of the elements of Marinade are open source, and the mSOL smart contract is under the control of a 13-party community multisig that requires six signers to make a change. Smart contract risks always exist in DeFi, but mSOL's tokenomics and the Marinade protocol are designed with security first and foremost. You can learn more about this on this page:

***

### What Can I Do with mSOL?

mSOL tokens already have dozens of use cases in our growing ecosystem. They allow you to access DeFi protocols while enjoying your staking rewards and helping the network. To help you get started, here is a non-exhaustive list of DeFi options where you can use mSOL:

* **Borrow against it on Marinade** - mSOL is the collateral asset Marinade Borrow is built around, so you can borrow against it directly with no unstaking or conversion needed.
* **Borrowing/Lending elsewhere** - mSOL can be used as collateral or borrowed on multiple other platforms.
* **Liquidity provision** - You will find many liquidity pools using mSOL in DeFi. They can be divided into two categories:
  * mSOL/SOL pools - These pools are a way to use your mSOL in DeFi while avoiding impermanent loss.
  * mSOL/XXX pools - These pools will be subject to impermanent loss but will allow you to provide liquidity on a large number of pairs.
* **Trade on DEXs** - mSOL is available on most decentralized exchanges and can be traded for other crypto tokens. Remember, by trading your mSOL, you also trade your accumulated staking rewards.
* **Trade on CEXs** - mSOL is also available to trade on centralized exchanges such as Coinbase, Kraken, or Gate. You can move the mSOL to your crypto wallet from these exchanges and fully utilize it in Solana DeFi.

Liquid staking tokens like mSOL could theoretically replace SOL throughout the Solana DeFi ecosystem. Any protocol currently using SOL could integrate mSOL using Marinade's permissionless SDK. By doing so, the network would become more secure and decentralized and our users would all earn their staking rewards while enjoying DeFi as they currently do.


# mSOL Token

mSOL is the liquid staking token representing a stake position in the Marinade stake pool. The supply of this token is controlled by Marinade using burning and minting operations in accordance with the overall state of the program.

This token constantly increases in price after each epoch, as long as there are staking rewards distributed. The rewards are accumulated on `total_staked`.

Price of mSOL = `total_staked / tokens_minted`

mSOL token address: mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So&#x20;

mSOL price: <https://www.coingecko.com/en/coins/marinade-staked-sol>

mSOL stats: <https://stats.marinade.finance/>

## mSOL price

It is important to note that mSOL has a [true price](https://stats.marinade.finance/d/sqUQd1Onk/marinade-kpi-dashboard?orgId=1\&refresh=1m), guaranteed in our protocol, but can have a different price on DEXs and exchanges when the mSOL/XXX pair becomes unbalanced.&#x20;

This situation is often quickly fixed by arbitrage. Nonetheless, we invite our users to compare the price of mSOL on Marinade to the one on DEXs in your trades and choose the most profitable for you.&#x20;

### Oracles

Our mSOL price is powered by [Pyth](https://pyth.network/) and [Switchboard](https://switchboard.xyz/). We also recently announced our partnership with [Chainlink](https://www.chainlinkecosystem.com/ecosystem/marinade/) to bring even more security and trust to our protocol.&#x20;

### APY calculation

Marinade is using a 30-day simple moving average of the 14-day APY to display its final APY.

This means that every day, Marinade looks at the mSOL price and compares it to the price mSOL had 14 days before. A 30-day average of those measurements is then used to display a final APY, projected over a year.&#x20;

## How to use Marinade state to get mSOL data

### Calculate the true mSOL/SOL price

First, you need to read Marinade state, an example is available [at this link](https://github.com/marinade-finance/liquid-staking-referral-program/blob/main/programs/marinade-referral/src/instructions/liquid_unstake.rs#L42).

* After reading Marinade state, you'll have `marinade_state.msol_price: u64`, and that is mSOL price in SOL multiplied by 0x1\_0000\_0000 (shifted), so to obtain mSOL/SOL as f64 you should do: `let msol_price_f64: f64 = marinade_state.msol_price as f64 / 0x1_0000_0000 as f64`, and then you get the true mSOL/SOL price.

### How much SOL an amount of mSOL represents

You start with the previous example and some amount of mSOL-lamports, then:

`let SOL_lamports = (mSOL_lamports as u128 * marinade_state.msol_price as u128 / 0x1_0000_0000 as u128) as u64`

{% hint style="info" %}
mSOL uses 9 decimals, as SOL.
{% endhint %}

### How much mSOL an amount of SOL represents

`let mSOL_lamports = (mSOL_lamports as u128 * 0x1_0000_0000 as u128 / marinade_state.msol_price as u128) as u64`

### Derive mSOL/USDC price

If you have access to SOL/USDC price from an oracle, the best way to avoid losses due to price inaccuracies is to derive mSOL/USDC from SOL/USDC and Marinade true price

`let mSOL_usdc = (SOL_usdc as u128 * marinade_state.msol_price as u128 / 0x1_0000_0000 as u128) as u64`

### Notes

msol\_price is computed and stored at this link (<https://github.com/marinade-finance/liquid-staking-program/blob/main/programs/marinade-finance/src/state/update.rs#L247>) after each epoch ends, when SOL staking rewards are added to the pool.&#x20;

You can also use the fns `marinade_state.calc_lamports_from_msol_amount()` and `marinade_state.calc_msol_from_lamports()` for better precision when computing mSOL from SOL and vice versa.


# Bot operations

The Marinade Liquid stake pool is driven by an off-chain **crank** that calls the program's permissionless instructions. It handles updating the mSOL price, applying the delegation strategy, and matching staking with unstaking orders.

## What the Crank Does

| Operation                                                        | When                                                     |
| ---------------------------------------------------------------- | -------------------------------------------------------- |
| Update the mSOL price from the pool's stake accounts             | At each epoch boundary, once rewards have landed         |
| Stake queued deposits and unstake to fill delayed unstake orders | Continuously through the epoch                           |
| Delegate, split, merge and rebalance the pool's stake accounts   | At the epoch boundary, following the delegation strategy |

Validator selection for the pool is driven by Marinade's **Stake Auction Marketplace**, not by a fixed validator list.

***

## Can Anyone Run It?

The program instructions the crank calls are **permissionless**, so the pool can always be kept operational even if Marinade's own crank is down.

{% hint style="info" %}
One caveat since liquid-staking-program v2.1.0: `merge_stakes` no longer lets the caller choose the destination account. Merges now target a canonical per-validator PDA, which the crank creates ahead of merging if it does not yet exist. Any third-party cranker has to follow the same order.
{% endhint %}

***

## Source

<table><thead><tr><th width="342.4000244140625">Component</th><th>Repository</th></tr></thead><tbody><tr><td>On-chain program</td><td><a href="https://github.com/marinade-finance/liquid-staking-program">liquid-staking-program</a></td></tr><tr><td>Delegation strategy (SAM evaluation)</td><td><a href="https://github.com/marinade-finance/ds-sam">ds-sam</a> and <a href="https://github.com/marinade-finance/ds-sam-pipeline">ds-sam-pipeline</a></td></tr><tr><td>Validator scoring and stake allocation API</td><td><a href="https://github.com/marinade-finance/delegation-strategy-2">delegation-strategy-2</a></td></tr></tbody></table>

The crank binary Marinade operates is internal, but every instruction it calls is in the public program above and every delegation input is reproducible from the strategy repositories.


# Marinade Borrow

Borrow against mSOL collateral that keeps earning staking rewards while your loan is open.

{% hint style="info" %}
**TL;DR:** Marinade Borrow lets you borrow against your staked SOL without giving up staking rewards. You choose how much to borrow, Marinade puts together the collateral as mSOL, and a routing engine places your position on whichever lending venue has the best rates (currently Kamino or Jupiter Lend). Your collateral keeps earning the whole time.
{% endhint %}

**Borrow is live and available to everyone.** There is no waitlist, beta access, or approval step. If you have SOL, mSOL, or an existing staking position, you can open a position today.

### How It Works

Most borrow products on Solana start the same way: deposit collateral, then borrow against it. Marinade Borrow flips this. You tell Marinade **how much you want to borrow**, and it assembles the collateral from assets you already hold, in this order:

1. **External staking positions** (SOL staked outside Marinade)
2. **Idle mSOL** in your wallet
3. **Idle SOL** in your wallet
4. **Your existing Marinade stake**, whether Native or mSOL

This waterfall also sets your **max borrow**, which reflects the total collateral you have across all four sources. You see exactly what Marinade plans to use on the **What backs your loan** screen before you confirm. **Nothing moves until you approve the transaction.**

You choose what to borrow, **SOL** or **USDC**, and each shows its own borrow APY. Opening a position takes **two or three wallet signatures** depending on whether idle SOL has to be converted, so expect more than one prompt.

{% hint style="warning" %}
**Keep more than 0.04 SOL available in your wallet.** Every Borrow action, opening, borrowing, repaying and withdrawing, is blocked when your available SOL is too low, and the app holds back **0.04 SOL** for network fees. Closing a position takes several transactions rather than one, so leave headroom above that figure. This is higher than the roughly 0.03 SOL needed for an ordinary stake or unstake.
{% endhint %}

***

### Your Collateral Becomes mSOL

This is the most important thing to understand before you borrow. Whatever Marinade sources as collateral gets converted to **mSOL**, Marinade's liquid staking token. Only the **minimum reasonable amount** needed to back your loan is converted. If you take a small loan against a large Native position, most of it stays exactly where it was, as native stake in your own accounts.

The upside of the mSOL form is that it **earns staking rewards continuously**, so your collateral keeps working while it backs your loan. That yield is what makes a positive net APY possible.

The tradeoff: the converted portion carries **smart contract exposure** on Marinade's liquid staking contracts and sits in the lending venue's contracts for the life of the position. If you stake through Marinade Native to keep contract exposure minimal, weigh this before borrowing. The app shows you exactly what will be converted before you confirm.

**Why More Collateral May Be Used Than You Expect**

Solana stake accounts cannot be split into arbitrarily small pieces: **each side of a split must be at least 1 SOL**. When Marinade splits a stake account for collateral, both the portion it takes and the portion left behind have to clear that minimum. Two things can follow:

* **Your loan needs less than 1 SOL from the account.** Marinade takes a full 1 SOL as collateral, slightly more than the loan strictly requires.
* **Taking exactly what is needed would leave less than 1 SOL behind.** Marinade uses the entire stake account as collateral instead, which can be a larger jump. The app tells you when this applies.

In both cases the extra stays yours, keeps earning as mSOL, and comes back to you once the loan is repaid.

***

### Where Your Position Lives

Marinade Borrow isn't a new lending market. A routing engine places your position on an established Solana venue, currently **Kamino** or **Jupiter Lend**, with more protocols coming. These are vetted, audited lending systems with substantial deposited assets.

**The venue, not Marinade, sets the market parameters:** maximum loan-to-value, liquidation threshold, and the variable borrow rate. The app always shows the exact parameters of the market your position sits in, and those are the numbers that count.

To find an open position, go to **Portfolio** and stay on the **Positions** tab. Your loan appears under **Borrow positions**, a separate table below Earn positions, showing the market, net value, collateral, debt, net APY, LTV and earned. The **Manage** dropdown on that row holds **Borrow**, **Repay**, **Withdraw** and **Deposit**.

You can also start a loan from a position you already hold: on **Portfolio**, open the **...** menu on a Marinade Native, Marinade Select or mSOL row and choose **Borrow**.

***

### Borrowing Pairs and Risk

Your collateral is always mSOL. The other side of the pair matters:

**SOL against mSOL** is a **price-bound pair**. mSOL's value comes from SOL and the two move together, so a broad market crash moves your collateral and your debt in lockstep. The main thing that raises your LTV over time is interest slowly accruing on your debt, which is why these markets can safely support much higher loan-to-value ratios than you'd see elsewhere in DeFi.

**Stablecoins against mSOL** work differently. Your collateral is priced in SOL terms and your debt in dollars, so **a drop in SOL's price raises your LTV directly**. These markets carry real price risk and come with more conservative parameters. Watch these positions the way you would on any lending protocol.

***

### The Numbers on Your Position Screen

<table data-search="false"><thead><tr><th width="148">Term</th><th>What it means</th></tr></thead><tbody><tr><td><strong>Collateral</strong></td><td>The mSOL backing your loan, at current value. Moves with the mSOL/SOL rate and grows with staking rewards.</td></tr><tr><td><strong>Debt</strong></td><td>What you owe: the amount borrowed plus interest accrued since.</td></tr><tr><td><strong>LTV</strong></td><td>Debt divided by collateral, right now. Moves as interest accrues, rewards accumulate, and prices shift.</td></tr><tr><td><strong>Liquidation LTV</strong></td><td>The threshold where liquidation becomes possible. Set by the venue and differs by market. Keep your LTV below it.</td></tr><tr><td><strong>LTV health</strong></td><td>A plain-language label showing how close you are to liquidation. A Marinade convenience label, not a protocol parameter.</td></tr><tr><td><strong>Supply APY</strong></td><td>The yield your collateral earns as mSOL. This is Marinade's staking APY.</td></tr><tr><td><strong>Borrow APY</strong></td><td>The variable interest rate on your debt, set by the lending venue based on supply and demand.</td></tr><tr><td><strong>Net APY</strong></td><td>(Supply APY x Collateral - Borrow APY x Debt) / Collateral. Can be positive even when the borrow rate exceeds the supply rate, if you have plenty of collateral relative to debt. A live rate, not a guarantee.</td></tr></tbody></table>

To see the **liquidation price** and the **liquidation LTV** while opening a loan, tap the pencil next to Loan-to-value. That panel also lets you drag your LTV between the minimum and maximum for the loan.

***

### How Liquidation Works

If your LTV crosses the liquidation threshold, the venue's liquidation mechanism can repay part of your debt by selling part of your collateral, **usually with a penalty**. You keep the rest of the position, but you lose value, and it is not reversible.

In a price-bound SOL market, LTV drifts up slowly through interest, so this is something you manage on the **timescale of weeks and months**, not minutes. In a stablecoin market, **price moves can get you there fast**.

Two ways to stay clear of the threshold, both in the **Manage** dropdown on your Borrow position row:

* **Repay** part of the debt (lowers the numerator)
* **Deposit** more collateral (raises the denominator)

Both are available at any time. Act before the threshold, not at it. **Borrow less than the maximum** when you open: opening at the maximum LTV leaves no room for interest to accrue before you are at risk, and the app warns you when margin is thin.

***

### Managing and Closing Your Position

You can repay part or all of your debt **whenever you want**. There are no fixed terms and no repayment schedule; interest simply accrues while the debt is open.

{% hint style="warning" %}
**Repaying does not return your collateral.** Repaying reduces your debt only. Once the debt is fully repaid, choose **Withdraw** from the same Manage dropdown to get your collateral back in your wallet as **mSOL**. Fully repaying and then withdrawing is what closes the position.
{% endhint %}

Collateral always comes back as mSOL, even if you started from a Native position or from idle SOL. You can hold it, use it elsewhere in DeFi, or unstake it back to SOL through Marinade, either instantly or through the standard unstaking cooldown. Returning to Marinade Native is a separate two-step job: unstake the mSOL, then stake the SOL again with Native, and expect about one epoch of reduced earning across the switch.

***

### FAQ

**Q: Do I need access or an invite?**

A: No. Borrow is generally available to all users, with no waitlist and no beta flag.

**Q: What do I need to start?**

A: A Solana wallet with SOL, mSOL, or an existing staking position, plus more than 0.04 SOL available for network fees. Marinade Borrow calculates your max borrow from what it finds.

**Q: I hold mSOL. Do I need to unstake first?**

A: No. You can borrow directly against mSOL with no conversion steps, since mSOL is the asset Borrow is built around. You need slightly more than a dust amount of mSOL (roughly $2 worth) plus more than 0.04 SOL for network fees.

**Q: Does borrowing stop my staking rewards?**

A: No. Your collateral is mSOL, which earns Marinade's staking APY the entire time your loan is open. That's the point of the design.

**Q: Can I keep my Marinade Native position and still borrow?**

A: Yes, for the most part. Only the portion needed to back your loan gets converted to mSOL, sized to the loan you take. The rest stays native. The **What backs your loan** screen shows exactly which holdings will be used before you commit.

**Q: My Marinade Native position is smaller since I borrowed. Where did the rest go?**

A: It became your collateral. On **Portfolio**, look at both **Earn positions** and **Borrow positions**: the converted mSOL sits under the Borrow position, and the two together account for what you had. Nothing left your wallet.

**Q: My wallet asked me to sign three times. Is that normal?**

A: Yes. Opening a position takes two or three signatures: converting stake to mSOL, converting idle SOL to mSOL if any is used, and the deposit-and-borrow itself. The confirmation screen lists which steps apply to your loan.

**Q: My wallet says the borrow transaction is malicious. Is it safe?**

A: If you started the borrow yourself on app.marinade.finance, yes. Opening a position converts stake into mSOL collateral, which changes the authority on a stake account, and some wallets flag every transaction of that shape. Marinade never transfers more than the amount you requested. Check that you are on app.marinade.finance and that the amounts match what the app showed you. If you did not start the transaction, cancel it.

**Q: Who sets the interest rate?**

A: The lending venue your position sits on. Borrow APY is variable and follows supply and demand in that market. Marinade shows it to you but doesn't control it.

**Q: Which protocol will my loan end up on?**

A: The routing engine picks the venue with the best rates at the time you open the position, currently Kamino or Jupiter Lend. The app shows you where your position lives.

**Q: Why is my LTV allowed to be so high in the SOL market?**

A: Because mSOL and SOL are price-bound. The pair doesn't have the volatility risk that forces conservative ratios in ordinary lending markets. The remaining risk is interest accrual, which moves slowly and predictably.

**Q: What happens if I do nothing?**

A: Interest keeps accruing and your LTV drifts upward, while staking rewards on your collateral partially offset it. Left alone long enough, any position with debt can eventually reach the liquidation threshold. Check in periodically, or set a comfortable buffer from the start.

**Q: Can I get liquidated even if the market doesn't move?**

A: Yes, eventually, through interest accrual alone if you never repay or add collateral. This is slow in price-bound markets, but it's not zero.

**Q: What are the risks?**

A: Smart contract risk on Marinade's liquid staking contracts and the lending venue's contracts. Liquidation risk if your LTV crosses the threshold. Variable rate risk, since borrow APY can rise. And in stablecoin markets, price risk on SOL.

**Q: What does Marinade charge?**

A: **Marinade's fee is 0%.** What you pay is the venue's borrow APY on your debt, plus Solana network fees, plus anything else shown at transaction time. No hidden charges beyond what's displayed before you confirm.

**Q: My wallet says the transaction may fail when I try to repay.**

A: Most often the wallet does not have enough available SOL. Repaying takes several transactions and the app holds back 0.04 SOL for network fees, so top up above that and try again.

**Q: Where do I see the exact parameters for my position?**

A: On your position screen in the app. Every number that matters, including your LTV, the liquidation threshold, and both APYs, is shown live for the specific market your position sits in.

***

Read the full article in the [Marinade Learn tab](https://app.marinade.finance/learn/marinade-borrow/).


# Marinade Instant Unstake

Learn how Instant Unstake works, when to use it, and how it differs from delayed unstaking.

## Overview

Instant Unstake lets you exit your staking position immediately instead of waiting for the usual one-epoch unlock on Solana.\
Instead of scheduling your stake to deactivate and coming back later to claim, Instant Unstake finds liquidity right away so you can receive SOL in a single transaction.

It works for both:

* Native staking (Marinade Native positions and other native stake accounts in your wallet)
* Liquid staking (mSOL)

For native stake, Instant Unstake needs a stake account of 1 SOL or more that has been active for at least 2 epochs. A position below 1 SOL, or one still activating, can still be exited with Delayed Unstake, which has no minimum on Marinade Native and Select. mSOL has no Instant Unstake minimum, so mSOL below the Delayed Unstake minimum of 1.0043 SOL uses Instant Unstake.

If you do not want to accept the Instant Unstake quote, you can always choose **Delayed Unstake** instead.

***

### Instant Unstake vs Delayed Unstake

When you exit a Marinade position, you generally have two choices:

* Instant Unstake – Get SOL back immediately in a single transaction.
  * For native staking (Marinade Native positions and other native stake accounts in your wallet), this uses a marketplace of liquidity providers who take over your stake and send SOL back.
  * For liquid staking (mSOL), this is executed as a swap from mSOL to SOL via DEX at the current market rate.
* Delayed Unstake - Use the standard Solana unlock.
  * Your position is scheduled to deactivate at the next epoch boundary for both Native and Liquid.
    * After one epoch, your SOL becomes claimable in the app, and you must come back to claim it.
    * This avoids market price impact. Delayed Unstake costs a flat 0.003 SOL for Marinade Native and Marinade Select, including Native positions paid in a customized reward token. The fee is charged from your wallet's SOL balance rather than deducted from the amount you unstake. Marinade Liquid (mSOL) Delayed Unstake carries a 0.2% protocol fee. (see the FAQ for up-to date fee details).

If you do not like the Instant Unstake quote (the estimated SOL you’ll receive), you can simply switch to Delayed Unstake and use the one-epoch flow instead.

***

### How Instant Unstake Works

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FXiiSuPZZTio7TvsVJYft%2Fimage.png?alt=media&#x26;token=cfb86d27-a515-47e4-8348-5352789a1364" alt="" width="435"><figcaption></figcaption></figure>

* Start an unstake from the Marinade app and choose **Instant**.
* The app requests a **real-time quote** to give you SOL now:
  * For **native stake**, your request goes to a **marketplace of liquidity providers**.
  * For **mSOL**, your route is built via **Jupiter** across one or more DEXes.
* Marinade shows you the **best quote received**.
* You **review the estimated SOL** you will receive and approve the transaction in your wallet if you’re happy with it.
* Once the transaction confirms, you **receive SOL immediately**.

***

### Upcoming: Limit Order Style Instant Unstake (Planned)

Marinade is planning a “limit order style” Instant Unstake mode to give you more control over the quotes you accept.

The current design idea (subject to change):

* You specify a minimum acceptable rate or a target amount of SOL you want to receive.
* Your Instant Unstake request is only executed if liquidity providers can meet or beat that target.
* If no provider is willing to fill at your level:
  * The order may remain unfilled, and
  * You can either adjust your target or use Delayed Unstake instead.

This feature is planned and details (such as UI, supported assets, and exact behavior) may change. When it launches, this article will be updated with final steps and examples.

***

### Things To Keep In Mind

* You can always switch to Delayed Unstake if you do not like the Instant Unstake quote.
* Instant = SOL now, based on LP / DEX quotes and market conditions, with no extra Marinade protocol fee currently added.
* Delayed Unstake = SOL after one epoch, and you must come back to claim. It costs a flat 0.003 SOL for Marinade Native and Marinade Select (charged from your wallet's SOL balance), and 0.2% for Marinade Liquid (mSOL).
* Instant Unstake works for both native stake (via a liquidity provider marketplace) and mSOL (via Jupiter).
* For a native Instant Unstake, your wallet's approval screen can show larger amounts, an unfamiliar address (the liquidity provider), or a warning that the transaction looks malicious. This is expected when you started the unstake yourself on app.marinade.finance and the estimated SOL matches the quote in the app. Marinade never transfers more than the amount you requested. If you did not start the transaction yourself, or the site is not app.marinade.finance, cancel. If you would rather not approve that screen, use Delayed Unstake.


# USDC Earn Vault

Learn how to deposit USDC, earn yield automatically, and withdraw anytime with no lockup. This guide covers how the USDC Vault works, fees, and risks

## Earn Yield on USDC with Marinade

Marinade lets you put your USDC to work. The USDC Vault is a lending strategy built on Kamino that delivers risk-adjusted yield on your stablecoins: no lockup required and no need to leave the Marinade app.

***

## What Is the USDC Vault?

The USDC Vault is a yield-generating vault powered by Kamino's on-chain lending markets. When you deposit USDC, your funds are supplied to liquid lending pools where borrowers pay interest. The vault curator (RockawayX) continuously reallocates capital across lending pools to optimize for steady, risk-adjusted returns.

#### **Vault highlights:**

* **Current APY**: variable, shown live in the app. The figure displayed is a **14-day average**, so it will not reflect a same-day move in lending rates.
* **Withdrawals**: no lockup and no unbonding period, subject to available lending liquidity
* **Vault curator**: [RockawayX](https://rockawayx.com/)
* **Lending base**: Kamino
* [**Audited**](https://kamino.com/docs/security/audits#kamino-earn-vaults) and **verified**

### **On-chain addresses**

<table><thead><tr><th width="195.5999755859375">Role</th><th>Address</th></tr></thead><tbody><tr><td>USDC Vault (Kamino Earn vault)</td><td><code>2TNCzzYJt3uHmpFpqeeJkza4pQUK9xoLa79DJH9AdgGA</code></td></tr><tr><td>Kamino vault program</td><td><code>KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd</code></td></tr><tr><td>Deposit asset (USDC mint)</td><td><code>EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v</code></td></tr></tbody></table>

***

## How It Works

1. **Deposit USDC:** You deposit USDC into the Marinade vault.
2. **Supplied to Kamino:** Your USDC is supplied to Kamino's on-chain lending markets through smart contracts.
3. **Rewards are generated:** Borrowers post collateral and pay interest. Yield is generated from lending demand and market utilization. APY fluctuates based on market conditions.
4. **Strategy is actively managed:** RockawayX, the external vault curator, reallocates capital across lending pools in response to market conditions to maintain consistent yield.
5. **Earn automatically:** Vault interest accrues continuously in USDC with no action required. Any additional incentive rewards appear as pending and must be claimed manually.

***

## How to Deposit USDC

**Step 1: Visit the Marinade App**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FaIv2o2qltm0zZbI8ecVj%2Fimage.png?alt=media&#x26;token=c27d3ad9-8566-4fa1-9419-2769630191f0" alt="" width="563"><figcaption></figcaption></figure>

* Go to [app.marinade.finance](https://app.marinade.finance/) and connect your wallet.

**Step 2: Navigate to USDC Vault**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FUimdfadsuX5ElYOA1VTs%2Fimage.png?alt=media&#x26;token=ed124c56-ee93-4f08-8a9d-c01da3ddc6b5" alt="" width="563"><figcaption></figcaption></figure>

* From the main menu, select **Earn**, then choose **USDC Vault** from the available strategies.

**Step 3: Enter Your Deposit Amount**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FNR0ie1KJq82RuoOGdVdM%2Fimage.png?alt=media&#x26;token=e87dd79b-4b95-4fb8-98d4-faca284f0789" alt="" width="477"><figcaption></figcaption></figure>

* Enter the amount of USDC you want to deposit.
  * Minimum deposit: 0.01 USDC

{% hint style="warning" %}
Keep a small amount of SOL in your wallet to cover transaction fees, even though you are depositing USDC.
{% endhint %}

**Step 4: Confirm the Transaction**

* Click **Stake**, then approve the transaction in your wallet. Your USDC will begin earning yield immediately.

**Step 5: Monitor Your Position**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F0EnWUy3ohuzUVDtYbp4x%2Fimage.png?alt=media&#x26;token=b92fcc19-51e4-4379-ae8f-448febab24b8" alt="" width="485"><figcaption></figcaption></figure>

* Once deposited, you can view your position under **My position** in the Earn section, and as a row under Earn positions on **Portfolio**. Vault interest accrues automatically and is reflected in your growing USDC balance.
  * If any incentive rewards are available, they appear as pending and can be claimed from the same page.

***

## How to Withdraw

There is no cooldown and no unbonding period. A withdrawal is a single transaction.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FpXDK3Wn1k5grGQjMTZMG%2Fimage.png?alt=media&#x26;token=60ea45b7-b43a-4dac-8b89-9b2d348dbf25" alt="" width="441"><figcaption></figcaption></figure>

1. Go to [app.marinade.finance](https://app.marinade.finance/) and connect the wallet you deposited from.
2. Open **Portfolio** and find your **USDC vault** position under Earn positions.
3. Open the **...** menu on that row and choose **Withdraw**. The row's own button is **Deposit**, so Withdraw sits in the menu beside it. There is no Unstake control for this product.
4. Enter the amount you want to withdraw, or click **Max** for the full position.
5. Click **Withdraw** and approve the transaction in your wallet. The USDC arrives once it confirms.

Keep a small amount of SOL in your wallet for the network fee, even though you are withdrawing USDC.

{% hint style="warning" %}
**Claim bonus rewards before withdrawing in full.** Vault interest is already part of your balance and needs no claiming, but campaign bonus rewards are separate. On the **My position** tab, look for a line reading "You've earned ... in bonus rewards" with a **Claim all** button, and claim before you withdraw everything.
{% endhint %}

**If a withdrawal does not go through.** Your USDC is supplied to Kamino's lending markets, so withdrawals depend on liquidity being available there. This is rare, but during periods of very high utilization a withdrawal can be constrained. Try a smaller amount, or try again shortly. The app lists this as **Liquidity risk** under **Strategy overview**.

Because the vault is a Kamino Earn vault, your position is also visible and withdrawable directly on Kamino at any time, at the vault address in the table above.

***

## How Rewards Work

Yield is generated from the interest paid by borrowers in Kamino's lending markets. The APY you see is a **14-day average** of the annualized rate, based on real-time lending demand and market utilization, so it lags a sudden move in rates.

There are two types of rewards:

* **Vault interest:** Accrues automatically to your USDC balance as interest compounds. No claiming required, and it is already included in whatever you withdraw.
* **Incentive rewards:** Additional rewards that may be available on top of vault interest. These appear as pending in the Earn page and must be claimed manually.
* **APY is variable.** The rate fluctuates based on borrowing demand and pool utilization. It is not fixed or guaranteed.

***

## Fees

Marinade does not charge a deposit or withdrawal fee for the USDC Vault.

<table><thead><tr><th width="250">Fee</th><th>Rate</th></tr></thead><tbody><tr><td>Deposit</td><td>0%</td></tr><tr><td>Withdrawal</td><td>0%</td></tr><tr><td>Management fee</td><td>0%</td></tr><tr><td>Performance fee</td><td><strong>5%</strong> of net interest earned</td></tr></tbody></table>

The performance fee is taken only on the net interest generated by your position. If your position generates $1,000 in interest, a $50 fee is taken and you keep $950. It is already reflected in the displayed net APY. Both the 5% performance fee and the 0% management fee are parameters of the on-chain vault account and can be read directly from it.

***

## Risks and Disclaimers

The USDC Vault is a non-custodial, on-chain vault. It is not a savings account and carries the following risks:

* **Strategy risk:** Yield is variable and depends on lending demand, collateral conditions, and the vault curator's allocation decisions. Returns are not guaranteed.
* **USDC depeg risk:** USDC is designed to track 1 USD, but the peg is not guaranteed in extreme market conditions.
* **Smart contract risk:** Funds are deployed through Kamino's smart contracts, which have been audited but may contain vulnerabilities.
* **Liquidity risk:** Withdrawals rely on available liquidity in underlying lending markets and may be constrained during periods of high utilization.

This vault deploys capital on-chain and is not a bank deposit or savings account. Only deposit what you are comfortable with.


# mTransactions

mTransactions is an exploration of a bandwidth marketplace for transactions on the Solana blockchain

{% hint style="warning" %}
**Note:** mTransactions is currently paused and unavailable. The documentation below is kept for reference purposes only.
{% endhint %}

The feature was released earlier as an **open beta** to explore new transaction capabilities within the Marinade ecosystem. At this time, the service has been **temporarily paused and is not active**.

## **What are mTransactions**

mTransaction is an open-source RPC-like service that connects transaction senders and validators with stake on their nodes. It takes advantage of the [QUIC and QoS updates](https://medium.com/chorus-one/how-will-solana-improve-its-stability-6d4b0ba41866) that were added to Solana in 2022 and 2023.

Participating users are able to send transactions to the mTransaction service, which will redirect them to one of the participating validators. This validator will use his staked node to forward the transaction to the leader through a QUIC connection.&#x20;

### Github repository

{% embed url="<https://github.com/marinade-finance/mtransaction>" %}
mTransactions repository
{% endembed %}


# Protected Staking Rewards

Protected Staking Rewards (PSR) can compensate Marinade stakers for rewards lost to prolonged validator downtime and unexpected commission increases, using a bond the validator posts.

## Overview

Marinade's validator protection system has three distinct components:

* **Protected Staking Rewards (PSR):** The overarching framework ensuring stakers are compensated when validators underperform.
* **Bonds:** Collateral posted by validators. SOL deposited into a bond account stays delegated to that validator and covers any compensation owed to stakers.
* **Stake Auction Market (SAM):** A separate system that determines how Marinade allocates stake across validators based on bids. SAM participation requires a bond, but SAM and PSR serve different purposes: SAM is about stake allocation, PSR is about protecting staker yield.

PSR applies to stake delegated through Marinade to validators that have a bond. Stake you delegated yourself outside Marinade is not covered.

***

Marinade introduced Protected Staking Rewards to its delegation strategy in April 2024. PSR serves as performance protection for Marinade stakers by covering the balance of any unexpected underperformance of a validator in the stake pool. This is done through an on-chain bond created by Marinade and each validator in the pool.

By implementing PSR, Marinade can fulfill its mission to decentralize Solana as best as possible by staking to more validators in the cluster without affecting the performance for stakers.

### **How Protected Staking Rewards Work**

PSR uses an on-chain program to cover staker losses caused by two specific validator events: **LowCredits** (extended downtime causing missed rewards) and **CommissionIncrease** (a validator raising their commission mid-epoch). When either occurs, the validator's bond is used to compensate stakers for the shortfall.

Note: Solana does not have a slashing mechanism yet. PSR is a bond-funded compensation system, not a penalty. Validators retain full control of their bond and it remains delegated to them at all times.

#### **PSR Coverage Allocation**

{% hint style="warning" %}
**Updated by MIP-23, effective epoch 1040.** Coverage used to split between validators and the DAO. It no longer does: validators now cover the full downtime charge on their own.
{% endhint %}

* **Validator's Responsibility:** Validators cover **100% of the rewards lost across the full 0% to 99% uptime range**, from their own bond.
* **Marinade's Coverage:** None. The DAO's reserve no longer absorbs any part of a downtime shortfall.
* **1% Grace Period:** The first 1 percentage point of downtime, and the first 1 percentage point of a mid-epoch commission increase, carry no charge at all. This is a threshold, not a deductible: an event under the 1% line is not charged anything, rather than having 1 point subtracted from a larger charge.

Before epoch 1040, the DAO covered the lower half of the loss (0% to 50% uptime) and validators covered the upper half (50% to 99% uptime). That DAO share is now gone; see [MIP-23](https://forum.marinade.finance/t/mip-23-full-validator-coverage-of-psr-downtime/1998) for the proposal and rationale.

{% hint style="info" %}
**Example: PSR Coverage**

* **Scenario 1**: Validator's uptime is 99.5% during an epoch.
  * **Validator's Responsibility**: No action is required as the downtime is within the 1% grace period.
  * **Marinade's Coverage**: None.
* **Scenario 2**: Validator's uptime is 90% during an epoch.
  * **Validator's Responsibility**: The validator's bond covers the full 10% loss.
  * **Marinade's Coverage**: None.
* **Scenario 3**: Validator's uptime is 40% during an epoch.
  * **Validator's Responsibility**: The validator's bond covers the full 60% loss.
  * **Marinade's Coverage**: None.
    {% endhint %}

#### **Setup for Validators**

Validators can set up and fund their bond by following the CLI instructions on GitHub: [Funding Bond Account](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#funding-bond-account).

**Audit**: The bond program was audited by Neodyme and can be viewed here: [Audit Report](https://docs.marinade.finance/marinade-protocol/security/audits#audit-reports-1).

{% hint style="info" %}
**Track PSR Events**

Each epoch, Marinade posts the results of PSR in Discord. You can see which validators fell below the performance threshold and will have SOL removed from their bond. Visit Discord and view the [**#psr-feed**](https://discord.com/invite/yTdH8YkYKg) channel for details.

View each validator's current bond amount and validator stake here: [PSR Dashboard](https://psr.marinade.finance/).
{% endhint %}

#### **Validator FAQ for PSR Bonds**

**Q: I am a validator. Can I receive stake from Marinade?**

Yes! You can refer to our Stake Auction Market to see how we delegate to validators.

**Q: How much SOL do I have to supply for my bond?**

The more SOL that is supplied, the more stake you will be eligible for from Marinade.

**Q: What happens if my validator bond is not funded?**

If your validator bond is not funded, your validator will lose eligibility for Marinade stake. Stake will be redistributed away from your validator over subsequent epochs.

Under normal conditions, roughly **0.7% of total TVL** is redistributed per epoch, so unstaking from unfunded validators happens gradually. However, if multiple validators lose eligibility at once due to expired bonds, auction exits, or other eligibility failures, redelegation can temporarily accelerate well beyond this baseline, redistributing stake much faster than usual.

To avoid losing stake, ensure your bond remains funded at all times.

**Q: Are funded bonds required for enhanced stake?**

Yes, validators must set up a bond to participate in the Stake Auction Marketplace (SAM) and be eligible for SAM stake allocations.

**Q: Is there a deadline to create and fund a bond?**

You can fund the bond anytime, but as of Epoch 608 you will not be eligible for Marinade stake if you have not yet supplied a bond.

Full detailed instructions can be viewed on [GitHub](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#funding-bond-account).

**Q: Will the stake account in my bond be redelegated to other validators?**

No, the stake accounts in your bond will always stay delegated to your validator and can be considered self-staked.

**Q: Does the PSR bond count for the self-stake requirement of the Solana Foundation Delegation Program?**

Yes, the SOL in your bond counts towards the self-stake requirement of the [Solana Foundation Delegation Program](https://solana.org/delegation-criteria#self-stake) (SFDP).


# Stake Auction Market (SAM)

Marinade Native and Marinade Liquid delegate through the Stake Auction Marketplace, where validators compete by bidding to offer the highest yield to stakers.

## Overview

Marinade's Native and Liquid delegation is distributed through the Stake Auction Marketplace (SAM). Every epoch, eligible validators are ranked by the yield they offer to stakers, and stake is rebalanced to the highest-yielding validators subject to eligibility and decentralization constraints. Marinade Select uses a separate vetted validator set, and Recipes positions that pay rewards in another token delegate to a dedicated Marinade validator.

For Native and Liquid stakers, delegation flows through SAM automatically. Validators bid each epoch to win delegated stake, and those bids translate directly into higher yield for stakers.

For validators looking to receive Marinade stake, this section covers how the auction works and what to set up to participate. New validators should start with the SAM Onboarding Guide. For tools, dashboards, repositories, and reference data, see SAM Resources.

{% hint style="info" %}
A funded PSR (Protected Staking Rewards) bond is a prerequisite for SAM participation. The bond is separate from SAM itself and acts as collateral to protect staker yield. See [Protected Staking Rewards](https://docs.marinade.finance/marinade-protocol/protocol-overview/protected-staking-rewards).
{% endhint %}

### How SAM Works

Validators are scored each epoch based on `max_yield`, the maximum yield they offer to stakers at a given stake level (e.g. 8% APY on 100k SOL). `max_yield` includes the validator's commission and any bid placed through SAM. In source code and the auction pipeline outputs, `max_yield` is referred to as `totalPmpe`.

Marinade ranks all eligible validators by `max_yield` and allocates stake top-down until all available stake is distributed.

### **SAM Lifecycle**

The end-to-end flow from validator setup to settlement, in two phases.

**One-time setup:**

1. Validator funds the bond
2. Validator configures the bid (CPMPE and/or dynamic commission)

**Recurring each epoch:**

3. Auction runs against current bid configuration ↻
4. Stake allocated to top bidders by `max_yield`
5. Bond charged at settlement for the previous epoch's stake
6. Next epoch begins → returns to step 3

The bond is funded once but consulted every epoch. As long as the bid stays competitive and the bond stays funded, validators continue to receive stake and incur settlements without further action.

#### Bidding Methods

Validators share rewards with stakers through a static bid, a dynamic commission bid, or both combined. Both are configured through the validator bonds CLI without changing the public commission rate that applies to external stakers.

* **Static bid (CPMPE, cost per 1,000 SOL of delegated stake per epoch):** A fixed cost per 1,000 SOL delegated per epoch, paid from the validator's bond.
* **Dynamic commission bid:** A percentage of inflation, MEV (Maximal Extractable Value), or block rewards shared with stakers, set in basis points.

See Dynamic Bids for the full mechanics, common configurations, and CLI examples.

#### Last Price Auction

SAM uses a last-price auction model. After ranking validators by `max_yield`, the `realized_yield` for the epoch is set to the `max_yield` of the last validator to receive stake (the lowest yield on the winning list). Validators with `max_yield` above `realized_yield` are not charged their full bid; they are charged only enough to deliver the realized yield to stakers.

The two bidding methods are charged independently:

* **Static bids (CPMPE):** Charged from the bond based on the realized yield and the amount of delegated stake. The full CPMPE is only charged when the validator is at the bottom of the winning list.
* **Dynamic commission bids:** Charged separately from the bond, based on the actual rewards earned by the validator that epoch and the configured commission split. Marinade uses the lower value (more favorable to stakers) between the on-chain commission and the configured bond commission.

This dual mechanism prevents overpayment on static bids and supports transparent reward sharing through dynamic commissions.

**Example: max\_yield vs. realized\_yield**

<table><thead><tr><th width="140">Validator ID</th><th>max_yield (APY)</th><th>stake_received (SOL)</th><th>realized_yield (APY)</th></tr></thead><tbody><tr><td>1</td><td>10.6%</td><td>95 000</td><td>8.12%</td></tr><tr><td>2</td><td>9.58%</td><td>200 000*</td><td>8.12%</td></tr><tr><td>3</td><td>9.4%</td><td>80 000</td><td>8.12%</td></tr><tr><td>…</td><td>…</td><td>…</td><td>…</td></tr><tr><td>166</td><td>8.12%</td><td>15 000**</td><td>8.12%</td></tr><tr><td>167</td><td>8.12%</td><td>15 000**</td><td>8.12%</td></tr><tr><td>168</td><td>8.10%</td><td>0</td><td>0%</td></tr></tbody></table>

Marinade distributes stake to 168 validators. Validator 1 (with `max_yield` 10.6%) does not pay their full bid: their bond is only charged enough to deliver 8.12% to stakers. The same applies to every validator above the floor. Validator 167, sitting exactly at 8.12%, pays their full bid since they are at the floor. Validator 168 falls below the realized yield and receives no stake.

The takeaway: validators can set their true `max_yield` without overpaying. The auction charges only what is needed to clear the floor.

#### Penalties at a Glance

Three mechanisms can charge a validator's bond beyond the regular auction bid. Each addresses a different situation. They are independent and can apply in the same epoch.

| Mechanism                         | Trigger                                                               | Charge                                                                     | How to Avoid                                                                                     |
| --------------------------------- | --------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| **Bid Reduction Penalty**         | Validator lowers `bidPmpe` below the previous 3 epochs' effective bid | Bond is charged to make up the yield gap on existing stake                 | Withdraw the bond to exit cleanly, then rejoin with a lower bid. Do not lower `bidPmpe` directly |
| **Activating Stake Fee**          | New stake activates on the validator after a winning auction          | Bond is charged on activating stake, scaled by overbid above clearing rate | Set `maxStakeWanted` to control incoming stake before bidding                                    |
| **Bond Risk Reduction Mechanism** | Bond covers fewer than 5 epochs of obligations on existing stake      | Stake is partially undelegated and a fee is charged from the bond          | Maintain bond coverage at or above the 13-epoch target                                           |

Two other actions can affect stake but are not fee-based: validators may lose eligibility (see Eligibility Criteria) or be blacklisted (see Blacklist Policy). Both result in stake being redelegated without charging the bond.

### Explore the SAM Documentation

* **SAM Onboarding Guide:** Step-by-step setup for new validators: install CLI, create bond, fund it, configure bid, and verify.
* **Eligibility Criteria:** Requirements to receive stake from Marinade, and how to exit SAM cleanly.
* **Stake Distribution and Decentralization Constraints:** How stake is allocated, unstaking priority, and network safety limits.
* **Blacklist Policy:** Grounds for blacklisting and removal process.
* **Dynamic Bids:** How dynamic commission bids work and how to configure them in the validator bonds CLI.
* **`maxStakeWanted` Parameter:** Cap the amount of Marinade stake a validator wants to receive.
* **Stake Matching:** Up to 30% matched stake for validators attracting external delegation.
* **Bonds Settlements:** How and when bids are settled each epoch.
* **Bid Reduction Penalty:** Penalty mechanics that protect against bid manipulation.
* **Activating Stake Fee:** One-time fee charged when new stake activates, scaled by how far above clearing the validator bid.
* **Bond Risk Reduction Mechanism:** Covers the cost of redelegating stake when a validator's bond is underfunded relative to their allocation.
* **Bond Notifications:** How validators are notified of bond-related events and changes.
* **SAM Resources:** Dashboards, repositories, APIs, and technical reference for SAM participants.

{% hint style="info" %}
The SAM per-validator cap is **15% of Marinade's TVL**, live as of epoch 946 ([MIP-19](https://forum.marinade.finance/t/mip-19-improving-sam-auction-stake-priority-bond-risk-reduction-mechanism-higher-validator-caps/1969)).
{% endhint %}

#### Operational Notes

A few facts worth knowing as a SAM participant.

* **Scoring cadence:** The delegation strategy scoring runs once per epoch. At the end of each epoch, Marinade's bot performs actions to move stake distribution toward the desired state.
* **SFDP self-stake credit:** A validator's PSR bond counts toward the self-stake requirement of the [Solana Foundation Delegation Program](https://solana.org/delegation-criteria#self-stake). Any SOL deposited in the bond counts toward total self-stake.
* **Data sources:** Marinade uses on-chain Solana data for all validator metrics, plus ipwhois for geolocation and data center identification.


# SAM Onboarding Guide

Step-by-step onboarding for validators joining the Marinade Stake Auction Marketplace.

{% hint style="info" %}
**TL;DR:** Install the validator bonds CLI, create and fund a bond, configure a bid, and verify on-chain. Read all penalty pages before bidding. "I didn't know" is not grounds for refund.
{% endhint %}

## Overview

Any active validator can participate in the Stake Auction Marketplace. The full onboarding flow is: install the CLI, create a bond, fund it, configure the bid, simulate, and wait for the next auction. This page walks through each step.

{% hint style="info" %}
**Read this page in full before installing the CLI or funding a bond.** Participating in SAM has financial obligations and penalty mechanics that are easy to miss when skipping ahead. At minimum, read the Bid Reduction Penalty, Activating Stake Fee, Eligibility Criteria, `maxStakeWanted` Parameter and Bond Risk Reduction Mechanism pages before configuring a bid. "I didn't know about the penalty" is not grounds for refund or removal of charges from a validator's bond.
{% endhint %}

#### Before Starting

A short list of things worth knowing before configuring anything.

* **Set `maxStakeWanted`:** When this is left unset or set to `0`, there is no cap at all, and a validator may receive significantly more stake than expected as Marinade's TVL grows. See `maxStakeWanted` Parameter.
* **Plan the bid before funding:** Lowering a bid after winning stake triggers the Bid Reduction Penalty. The clean way to leave the auction entirely is to withdraw the bond.
* **Confirm eligibility:** Uptime, commission, supported node version and bond requirements all apply, and the commission bar is stricter than the headline 7% figure suggests. See Eligibility Criteria.
* **External stake qualifies for matching:** Validators bringing external stake can have 10% of their non-SFDP external stake and 30% of their SFDP stake matched by Marinade. The matched portion does not require the slashable part of the bond, but bids are still charged on it and the bond must be able to cover those bids. See Stake Matching.

***

#### **Step 1: Install the Validator Bonds CLI**

The CLI is the entry point for every action below: creating, funding, configuring, and managing the bond.

```bash
npm i -g @marinade.finance/validator-bonds-cli
```

Verify the version:

```bash
validator-bonds --version
```

Full installation and command reference: [validator-bonds-cli readme](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#validator-bonds-cli).

#### **Step 2: Create a Bond**

The bond is an on-chain account linked to the validator's vote account. It serves as collateral for Protected Staking Rewards and is required to participate in SAM.

```bash
validator-bonds -um init-bond \
  --vote-account <vote-account-address> \
  --validator-identity ./validator-identity.json
```

This is the permissioned setup, where the validator identity signs the transaction. A permissionless setup is also supported. See the [bond creation guide](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#creating-a-bond) for both flows.

#### **Step 3: Fund the Bond**

The bond must hold enough SOL to cover one epoch of downtime, one epoch of bids at the maximum stake target, and any settlement obligations.

```bash
validator-bonds -um fund-bond-sol <bond-or-vote-account-address> \
  --from <funding-keypair> \
  --amount <sol-amount>
```

`--amount` is in SOL, not lamports.

A few rules of thumb:

* **Absolute floor:** The auction enforces a minimum bond balance (`minBondBalanceSol`) independently of how much stake a validator holds. Below 80% of that floor the SAM stake cap drops to zero and the validator receives nothing. Between 80% and 100% of the floor, the cap is clipped to existing stake so no new stake arrives. At or above the floor there is no clipping. The value is configurable, so read it live from [`auction-config.json`](https://github.com/marinade-finance/ds-sam-pipeline/blob/main/auction-config.json) rather than memorising a number.
* **Eligibility minimum:** 1 SOL per 10,000 SOL of stake covers one epoch of downtime.
* **Comfortable starting point:** 1 SOL per 2,000 SOL of target stake gives headroom for bids and settlements alongside downtime coverage.

{% hint style="info" %}
SOL deposited in the bond stays delegated to the validator and earns rewards for the validator. Marinade also counts it as self-stake in its own stake matching calculation. Validators relying on the bond to satisfy the [SFDP (Solana Foundation Delegation Program) self-stake requirement](https://solana.org/delegation-criteria#self-stake) should confirm that treatment with the Foundation, since that requirement is theirs and not Marinade's.
{% endhint %}

#### **Step 4: Configure the Bid**

Use a static bid (CPMPE, cost per 1,000 SOL of delegated stake per epoch) in lamports, a dynamic commission bid in basis points, or both. See [Configuring a Bond](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#configuring-a-bond) for all options.

```bash
validator-bonds -um configure-bond <bond-or-vote-account-address> \
  --authority <bond-authority-keypair> \
  --cpmpe <lamports-per-1000-sol-per-epoch> \
  --max-stake-wanted <max-sol-amount-in-lamports>
```

{% hint style="warning" %}
**The CLI will not lower a bid by accident.** `configure-bond` refuses to decrease `--cpmpe` unless `--force` is also passed. That guard exists because lowering a bid while holding Marinade stake triggers the Bid Reduction Penalty. Read that page before using `--force`.
{% endhint %}

Both `--cpmpe` and `--max-stake-wanted` take **lamports**, not SOL.

To see what other validators are bidding and what the current effective bid looks like, check the [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions). Each epoch folder contains the inputs and outputs of that auction.

#### **Step 5: Simulate the Position**

Before committing to a bid, run a simulation on the [PSR (Protected Staking Rewards) dashboard](https://psr.marinade.finance/) to see how the bid would perform in the current auction. The simulation shows projected stake at different bid levels, helping with bond sizing and picking a competitive bid.

#### **Step 6: Verify the Setup**

Confirm the bond and bid are visible on-chain before the next auction runs.

```bash
validator-bonds -um show-bond <bond-or-vote-account-address>
```

A validator's auction position can also be verified on the [Validator Dashboard](https://app.marinade.finance/network/validators/) once the next epoch begins.

{% hint style="info" %}
**The CLI is the source of truth.** `show-bond` reads on-chain data and reflects the bond's current state immediately after any transaction.

The [PSR dashboard](https://psr.marinade.finance/) and other web dashboards refresh every few hours and are intended for reference, not real-time verification. After funding or configuring a bond, give the dashboard time to catch up before assuming something is wrong. Always cross-check with the CLI first.
{% endhint %}

***

### What Happens Next

Auctions run every epoch. A Solana epoch is 432,000 slots, which at current block times is roughly **a day and a half**. The exact length drifts with network block time, so read the live value from an RPC (`solana epoch-info`) rather than planning against a fixed number of hours.

Once the bond is funded and the bid is configured, the validator enters the next auction cycle automatically. If the bid is competitive enough to win stake, delegation activates over the following epochs.

To stay informed about bond status, set up Validator Bond Notifications for alerts on bond underfunding, settlements, and other events.

**Next Steps**

* **Eligibility Criteria:** Confirm all requirements are met and learn how to exit SAM cleanly. See Eligibility Criteria.
* **Bonds Settlements:** Understand how bids are charged each epoch. See Bonds Settlements.
* **Activating Stake Fee:** Understand the fee defined for newly activating stake, and check whether it is currently charged at all. See Activating Stake Fee.
* **Bid Reduction Penalty:** Read this before considering any bid changes. See Bid Reduction Penalty.
* **Bond Risk Reduction Mechanism:** Learn what happens when a bond becomes underfunded relative to its stake allocation. See Bond Risk Reduction Mechanism.


# Eligibility Criteria

Requirements a validator must meet to receive stake from SAM, and how to exit cleanly.

{% hint style="info" %}
**TL;DR:** Validators must meet uptime, commission, version, and bond requirements to receive Marinade stake. The commission requirement in practice is that the total yield offered to stakers matches the full network rewards base, which is stricter than the 7% headline. Losing eligibility stops new allocations and gradually unstakes existing stake. Exit cleanly by withdrawing the bond, not by lowering the bid.
{% endhint %}

## Overview

To receive stake through the Stake Auction Marketplace, a validator must meet the requirements on this page. Eligibility is checked every epoch by the auction pipeline. Once a validator no longer qualifies, they stop receiving new stake and their existing Marinade-delegated stake is redelegated to other eligible validators.

***

## Requirements to Receive Stake

Each item below must be satisfied for a validator to be eligible.

* **Not blacklisted:** The validator is not on the SAM blacklist. See [Blacklist Policy](/marinade-protocol/protocol-overview/stake-auction-market/blacklist-policy) for full criteria.
* **Supported node version:** The validator runs a node version matching the semver expression in `validatorsClientVersionSemverExpr`. The live expression is in [`auction-config.json`](https://github.com/marinade-finance/ds-sam-pipeline/blob/main/auction-config.json) and is updated as the network moves forward.
* **Yield offered to stakers:** The total yield the validator offers to Marinade stakers must clear the eligibility floor described in The Commission Requirement below. This is the requirement validators most often misjudge.
* **Uptime:** In each of the last 3 epochs, the validator's vote credits must be at least **80% of the network's stake-weighted average vote credits for that epoch**. This is a relative bar, not an absolute 80% uptime figure: the threshold moves with network performance.
* **Funded PSR bond:** The validator has created and funded its [PSR (Protected Staking Rewards) bond](https://marinade.finance/blog/psr-and-delegation-strategy-updates/). Two things are checked. First, an absolute minimum bond balance (`minBondBalanceSol`): below 80% of it the validator's SAM stake cap drops to zero, between 80% and 100% the cap is clipped to existing stake so no new stake arrives, and at or above it there is no clipping. Second, a proportional requirement: the bond must cover one epoch of downtime (roughly 1 SOL per 10,000 SOL of stake), one epoch of the effective bid at the stake received, and several further epochs of bid reserve. See [Bond Risk Reduction Mechanism](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism).
* **Decentralization constraints:** Allocation is also subject to per-validator caps and ASO (Autonomous System Organization, the data center or hosting provider) and country concentration limits. These are not strict eligibility gates but can prevent a validator from receiving additional stake. See [Stake Distribution and Decentralization Constraints](/marinade-protocol/protocol-overview/stake-auction-market/stake-distribution-and-decentralization).

***

## **The Commission Requirement**

The auction applies **two** commission-related floors and takes whichever is higher.

<table><thead><tr><th width="168">Floor</th><th>Rule</th><th>Config keys</th></tr></thead><tbody><tr><td>Effective inflation commission</td><td>Yield offered must be at least the network inflation base less the maximum effective commission, currently <strong>7%</strong></td><td><code>validatorsMaxEffectiveCommissionDec</code></td></tr><tr><td>Full rewards base</td><td>Yield offered must be at least the <strong>network inflation base plus the MEV base plus the block rewards base</strong>, plus a configurable fee allowance</td><td><code>minEligibleFeePmpe</code></td></tr></tbody></table>

Under the configuration in force today the second floor is strictly higher than the first, so **the second floor is the one that binds**. In practice that means a validator must deliver to Marinade stakers the equivalent of the full network rewards base across inflation, MEV **and** block rewards. A validator that keeps 7% of inflation and shares nothing of its block rewards does not qualify, even though it satisfies the 7% rule.

The yield offered is the sum of four things: on-chain inflation passed through, on-chain or bond-declared MEV passed through, block rewards shared through the bond, and any static bid (CPMPE) paid from the bond.

{% hint style="warning" %}
**Block rewards count.** If `--block-commission` is never set on the bond, the auction treats the validator as keeping 100% of block rewards, so that stream contributes nothing to the total offered. Because block rewards are part of the floor, leaving it unset makes the bar harder to clear. See Dynamic Bids.
{% endhint %}

### **Offsetting a Higher On-Chain Commission**

A validator whose on-chain commissions are above zero can still qualify by topping up stakers' yield from the bond, either with a static bid or by declaring lower commissions on the bond.

The gap to close is the difference between what the validator passes through on-chain and the full network rewards base. Concretely, for a validator with an on-chain inflation commission of `c`, zero MEV commission, and no block commission configured, the gap per 1,000 SOL per epoch is:

```
gap = c x inflation_base_pmpe + block_base_pmpe
```

That gap can be closed with a static bid of at least `gap` in CPMPE, or by declaring the corresponding commissions on the bond so the auction charges the difference at settlement, or by a combination.

The per-epoch values of `inflation_base_pmpe`, `mev_base_pmpe` and `block_base_pmpe` are published in each epoch's auction inputs and outputs in the [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions). Use those rather than a remembered figure: they move every epoch.

{% hint style="info" %}
Static bids deplete bond reserves over time. Validators choosing to offset a higher on-chain commission this way should monitor their bond balance and top up as needed.
{% endhint %}

***

## **Where to Check Eligibility**

Three sources help validators verify their status and diagnose issues.

* **Marinade validator page:** A validator's own profile at [app.marinade.finance/network/validators/](https://app.marinade.finance/network/validators/) shows current Marinade-delegated stake, bond status, and other relevant validator information. It does not show SAM eligibility status directly. Use the PSR dashboard for that.
* **PSR dashboard:** The [PSR dashboard](https://psr.marinade.finance/) shows eligibility status and surfaces specific reasons for exclusion (e.g. an ASO concentration constraint).
* **Auction pipeline outputs:** Each epoch's auction inputs and results are published in the [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions). The `samEligible` flag and the `revShare` breakdown per validator show exactly why a validator passed or failed in that epoch.

Validators should also be monitoring uptime and node health from their own infrastructure, as these are the most common eligibility issues.

### **What Happens After Losing Eligibility**

Loss of eligibility is treated as a clean unstake, no penalty is charged.

* **No new stake:** Once a validator fails any eligibility check, they are excluded from receiving new stake in upcoming auctions.
* **Existing stake redelegates first:** Ineligible validators sit at the top of the redelegation priority order, ahead of every other category, so their stake moves before anyone else's. There is no fixed timeline. Stake reduces gradually over multiple epochs as the per-epoch redelegation budget allows.
* **No penalty:** Losing eligibility does not trigger a Bid Reduction Penalty or other charge against the bond. Entering the blacklist is different and does carry a bond charge, see Blacklist Policy.
* **Bids still apply during unstake:** While stake is being redelegated, the validator continues to be charged bids on whatever Marinade stake remains active that epoch.
* **Recovery:** Once a validator becomes eligible again, they re-enter the next auction cycle automatically. There is no separate re-application step.

***

## **How to Exit SAM**

If a validator receives stake from SAM, the correct way to exit fully is to request a withdrawal from the bond. This allows Marinade to redelegate stake away from the validator without charging a penalty.

{% hint style="warning" %}
A validator who receives stake from SAM and lowers the CPMPE instead of withdrawing the bond will trigger a bond settlement for the expected yield that will be missed. The CLI blocks this by default: `configure-bond` refuses to decrease `--cpmpe` unless `--force` is passed. See Bid Reduction Penalty.
{% endhint %}

Setting `maxStakeWanted` to zero does **not** stop incoming stake. In the auction, a value of zero or unset means **no cap at all**, which is the opposite of what the number suggests. To reduce, rather than stop, the stake a validator holds, set `maxStakeWanted` to the level wanted and the auction will target down to it over the following epochs. To stop receiving stake from Marinade entirely, withdraw the bond. See [`maxStakeWanted` Parameter](/marinade-protocol/protocol-overview/stake-auction-market/maxstakewanted-parameter).

Stake reduces gradually over multiple epochs after a withdrawal request. There is no fixed timeline.


# Stake Distribution and Decentralization

How Marinade allocates stake each epoch, how it reduces stake when needed, and the constraints that protect network decentralization.

{% hint style="info" %}
**TL;DR:** Marinade ranks validators by `max_yield` and allocates stake top-down each epoch, subject to a 15% per-validator cap, 30% ASO cap, and 40% country cap. About 1% of TVL rebalances per epoch under normal conditions, with faster movement when validators lose eligibility or exit.
{% endhint %}

## Overview

Marinade's stake distribution operates through a unified pipeline that ranks validators by `max_yield` and allocates the entire TVL each epoch, subject to eligibility and decentralization constraints. This page covers how stake is allocated to winners, how stake is reduced from validators no longer at the top of the list, and the constraints that prevent stake concentration.

## How Stake Is Allocated

Stake is allocated top-down by `max_yield`, starting with the highest-ranked eligible validator.

For each validator, three constraint checks must pass before stake is allocated.

* **Per-validator cap:** A validator can hold at most 15% of Marinade's TVL (MIP-19, live as of epoch 946).
* **ASO and country concentration:** Allocation to a validator must not push the ASO (Autonomous System Organization, i.e. the data center or hosting provider) above 30% of Solana's total network stake, or the country above 40% of Solana's total network stake.
* **Bond balance:** The validator's bond must hold enough SOL to cover one epoch of downtime (PSR) and at least one epoch of effective yield, including the bid.

If two or more validators tie on `max_yield` at the auction floor, the remaining stake is split equally among them. Constraint checks run in parallel during the split to ensure fair distribution.

The process continues down the ranked list until all available stake is distributed or remaining validators fail the constraint checks.

### How Stake Is Reduced

Marinade reduces stake from validators by assigning each one a redelegation priority. Stake is removed in priority order until the redelegation budget for the epoch is exhausted.

The priority tiers, from removed first to removed last:

* **Ineligible validators:** Validators failing any eligibility check lose stake before any other category.
* **Partially uncovered stake:** Validators whose current Marinade stake is not fully covered by their bond. The deeper the shortfall, the higher the priority for removal.
* **Overstaked validators:** Validators whose SAM target (the stake they would win in this epoch's auction) is lower than their current SAM active stake. The excess is redelegated to other validators. The further the overstake exceeds target, the higher the priority for removal.

Under normal conditions, roughly **1% of Marinade's total TVL is rebalanced per epoch**. This baseline keeps stake redistribution gradual and predictable. The exact rebalance budget is configured in the auction pipeline and may be adjusted over time.

When validators lose eligibility (due to insufficient bond funding, auction exits, blacklisting, or other failures), redelegation can temporarily accelerate significantly beyond this baseline. These spikes represent the largest opportunities for eligible validators to receive new stake. See [Dynamic Bids](/marinade-protocol/protocol-overview/stake-auction-market/dynamic-bids) for how to position for these windows.

### Where to See Allocation and Redelegation

Each epoch's auction outputs show the actual allocations and redelegations performed.

* **Auction outputs:** [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions). Each epoch folder contains the inputs and outputs of the allocation, including per-validator stake targets and current active stake.
* **PSR dashboard:** The [PSR dashboard](https://psr.marinade.finance/) shows current per-validator stake and bond status. Refreshes every few hours.

### What Validators Can Control

A validator's position in both allocation and redelegation depends on three operational factors.

* **Bid competitiveness:** A higher `max_yield` (through CPMPE, the cost per 1,000 SOL of delegated stake per epoch, dynamic commission, or both) ranks the validator higher in the allocation order and reduces the chance of being overstaked. See [Dynamic Bids](/marinade-protocol/protocol-overview/stake-auction-market/dynamic-bids).
* **Bond funding:** A bond fully covering current stake keeps the validator out of the "partially uncovered stake" priority tier. Insufficient funding triggers the [Bond Risk Reduction Mechanism](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism) on top of the redelegation priority.
* **Eligibility:** Maintaining uptime, supported node version, and effective inflation commission below 7% prevents the validator from falling into the "ineligible" tier. See [Eligibility Criteria](/marinade-protocol/protocol-overview/stake-auction-market/eligibility-criteria).

Decentralization constraints (the 15% per-validator cap, 30% ASO cap, and 40% country cap) are not directly controllable, but they affect the maximum stake a validator can ever receive. Validators near these caps may want to factor that into bid and bond planning.


# Blacklist Policy

Grounds for blacklisting a validator from the Marinade Stake Auction Marketplace, and the process for removal from the blacklist.

{% hint style="info" %}
**TL;DR:** Blacklisting is triggered by automated, per-epoch detection against published criteria: sandwich MEV, slow voting, slow slots, commission rugs, and similar. Blacklisted validators cannot receive Marinade stake, and a bond penalty is charged once, in the epoch the validator first appears on the list. Appeals are possible through Discord with evidence.
{% endhint %}

## Overview

The Marinade Foundation sets the criteria by which validators may be blacklisted from the Marinade Stake Auction Marketplace, and Marinade Labs operates the tooling that applies them. Blacklisting is a last resort and is enforced only in clearly defined, verifiable cases, based on objective data and reproducible metrics.

***

## General Principles

* **Validators that harm the network may be blacklisted:** The blacklist is reserved for behaviors with a clear negative impact on Solana or on Marinade stakers.
* **Listing is automated, not discretionary:** Tooling runs every epoch and checks every validator against the published criteria using public data sources, across multiple epochs so that single-epoch noise does not trigger a listing. There is no per-validator judgment call and no per-validator vote to add a validator to the list.
* **Continuously updated:** The blacklist is updated continuously and without prior notice as the detection tooling runs.
* **Transparent criteria changes:** The Marinade Foundation may update blacklisting criteria at any time, but in non-trivial cases will do so only with broad community consensus and in support of Solana's long-term health.
* **Discretion applies to removal, not to listing:** Appeals and reinstatements are reviewed by the team case by case. Additions to the list are not.

***

## Grounds for Blacklisting

A validator may be blacklisted for:

* **MEV sandwich attacks:** Engaging in MEV sandwich attacks in over 30% of blocks they produce.
* **Network degradation:** Intentionally introducing latency or degrading network bandwidth, detected as sustained slow slot production across consecutive epochs.
* **Slow voting:** Also known as vote lagging.
* **Commission rugs:** Raising commission to capture rewards that would otherwise go to stakers.
* **Cluster restart failures:** Failing to restart their node within 36 hours after a cluster restart due to a halt, if it occurs at least twice.
* **Malicious MEV behavior:** Any other form of malicious MEV behavior, per MIP-9.
* **Missing BLS key:** Having no BLS public key registered on the vote account. Since the first slot of epoch 1006 Solana builds its leader schedule and inflation rewards only from validators with a registered key (SIMD-0357), so a keyless validator earns nothing for itself or its stakers.

Each entry on the live list carries a reason code naming the criterion that produced it:

| Reason code                                    | Meaning                                                                                                                                      |
| ---------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `MALICIOUS_SM_*`                               | Sandwich-attack MEV, suffix is the epoch of detection                                                                                        |
| `SLOW_SLOTS_*`                                 | Slow slot production / introduced latency, suffix is the epoch of detection                                                                  |
| `SLOW_VOTER`                                   | Vote lagging                                                                                                                                 |
| `BLACKLIST_COMMISSION_RUG`, `COMMISSION_RUG_*` | End-of-epoch commission rug                                                                                                                  |
| `MALICIOUS_MIP_9`                              | Other malicious behavior under MIP-9                                                                                                         |
| `EXITING_CLUSTER`                              | Failure to restart after a cluster restart                                                                                                   |
| `MISSING_BLS_*`                                | No BLS public key registered on the vote account, suffix is the epoch of detection (currently `1006`, the epoch the requirement took effect) |

### Consequences

* **No prior warning:** Detection and listing happen automatically. There is no advance notice.
* **Exclusion from delegation:** Blacklisted validators are made ineligible and receive no Marinade stake. They also sit in the first redelegation tier, so existing Marinade stake moves away from them ahead of everyone else. See Stake Distribution and Decentralization.
* **Bond penalty, charged once:** The auction charges a blacklist penalty from the bond in the epoch a validator **first** appears on the list. It is not recharged in subsequent epochs while the validator stays listed. The penalty per 1,000 SOL of stake per epoch is:

```
blacklist_penalty_pmpe = clearing_price + min(3 x effective_participating_bid, clearing_price)
```

Both terms come from that epoch's auction, so the charge scales with the clearing price and with how aggressively the validator was bidding, not with a case-by-case severity assessment. The resulting settlement is paid from the bond to stakers.

#### **Where the Blacklist Is Published**

<table><thead><tr><th width="340">Source</th><th>What it is</th></tr></thead><tbody><tr><td><a href="https://github.com/marinade-finance/delegation-strategy-2/blob/master/blacklist.csv"><code>delegation-strategy-2/blacklist.csv</code></a></td><td>The canonical live list. This is the file the auction pipeline pulls each epoch, via <code>blacklistApiBaseUrl</code> in <code>auction-config.json</code></td></tr><tr><td><a href="https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions">ds-sam-pipeline auctions folder</a></td><td>Per-epoch snapshot of the list as used by that auction, at <code>&#x3C;epoch>/inputs/blacklist.csv</code>. Use this to see the list as it stood in a past epoch</td></tr><tr><td><a href="https://psr.marinade.finance/protected-events">PSR dashboard protected-events view</a></td><td>Shows whether a validator has been flagged as blacklisted</td></tr></tbody></table>

***

## How to Appeal

Validators who believe they were blacklisted in error or who have reformed after a legitimate flag may submit an appeal through the Marinade Discord. An appeal does not guarantee removal from the blacklist. Marinade investigates each case independently before making a decision.

{% hint style="warning" %}
Always get the Discord invite from Marinade's [Official Links](https://docs.marinade.finance/official-links) page. Never use a Discord link sent to you in a direct message.
{% endhint %}

To submit an appeal, open a ticket in the Marinade Discord server and include:

* **The reason for blacklisting:** State the specific behavior and, where you have it, the reason code from `blacklist.csv` (e.g. `SLOW_SLOTS_*`, `MALICIOUS_SM_*`).
* **Why it happened:** Provide root cause. Was it intentional, a misconfiguration, a third-party issue, or a fixed bug?
* **What has changed:** Describe the corrective action taken and any supporting evidence Marinade can verify.
* **Your vote account address**, and the epoch in which the listing appeared.

Tickets that simply request removal without supporting information will typically be ignored.

### Removal From the Blacklist

* **Unjustified blacklisting:** If an appeal shows the blacklisting was unjustified (e.g. due to misinterpreted performance data), the validator will be removed after review and approval by the team.
* **Rightful blacklisting:** If the blacklisting was rightful, removal is possible only after a minimum 1-month observation period of sustained good behavior. The validator must show a clean record of no further policy violations, maintain good uptime, and keep up with network patches. The actual length of the review is determined case by case and may extend beyond one month based on the nature of the original offense and the team's review schedule.
* **Team discretion:** All removals are ultimately at the team's discretion. An appeal ticket starts the review process but does not guarantee reinstatement.
* **Commission rugs:** Validators blacklisted for commission rugs are permanently excluded. No appeals.
* **Repeat offenders:** Repeat offenders are permanently blacklisted and ineligible for Marinade stake. No appeals. Marinade retains discretion to determine what constitutes a repeat offense.


# Dynamic Bids

How dynamic commission bids work and how to configure them in the validator bonds CLI.

{% hint style="info" %}
**TL;DR:** Configure inflation, MEV, and block commissions in basis points (validator's portion kept). The effective bid recalculates each epoch from actual rewards, keeping the validator competitive without manual updates. On-chain commission acts as a floor. A stream left unset counts as 100% kept, so it contributes nothing.
{% endhint %}

## Overview

Dynamic bidding allows the effective bid to recalculate automatically each epoch based on actual rewards, rather than locking the validator into a fixed lamport number that can overshoot when rewards are low or leave the validator uncompetitive when rewards are high. Commission parameters are set once. The auction adjusts the effective bid each epoch from there.

***

## How the Effective Bid Is Calculated

The auction bid is determined by three commission parameters set in the validator bonds CLI.

* **`--inflation-commission`:** The portion of inflation rewards the validator keeps, in basis points.
* **`--mev-commission`:** The portion of MEV rewards the validator keeps, in basis points.
* **`--block-commission`:** The portion of block rewards the validator keeps, in basis points.

Each parameter is expressed in basis points (bps), where 10,000 bps = 100%. A value of `0` means the validator keeps 0% (shares 100% with stakers). A value of `10,000` or above means the validator keeps 100% (shares 0% with stakers). The remainder after the validator's commission is what gets shared with stakers through the auction.

Together, these three settings determine the effective bid, which is the number SAM uses to rank validators in the auction each epoch. Dynamic bidding does not change how rewards work. It only changes how the auction bid is calculated.

{% hint style="warning" %}
**Unset is not the same as zero.** A commission the validator never configures is treated by the auction as **100% kept**, so that reward stream contributes nothing to the yield offered to stakers. This matters most for `--block-commission`, which most validators have never set: block rewards are part of the SAM eligibility floor, so leaving it unset makes the floor harder to clear. See Eligibility Criteria.
{% endhint %}

{% hint style="info" %}
**Negative values are permitted.** A commission below `0` bps means the validator keeps nothing and subsidises stakers beyond the rewards that stream actually produced, funded from the bond. The auction enforces a lower bound on how negative a commission may go (`minimalCommission` in [`auction-config.json`](https://github.com/marinade-finance/ds-sam-pipeline/blob/main/auction-config.json)). This is an advanced setting: it increases the bond draw every epoch it is in force.
{% endhint %}

### What It Costs

Dynamic bidding costs exactly the rewards a validator chooses to share, nothing more.

Unlike a static bid (a fixed lamport amount), the dynamic portion adjusts with actual earnings each epoch. The validator sets a ceiling through the commission settings, and the market determines what is actually paid. When rewards are low, the SOL amount paid out is lower. When rewards are high, the validator may share more in absolute terms but stays competitive without manual adjustment.

***

## Marinade-Attributable Rewards Only

Commission settings apply only to rewards generated by Marinade-delegated stake.

A common misunderstanding is that these commissions apply to all of a validator's rewards. They do not. The settings only affect the rewards generated by the portion of stake delegated by Marinade. The rest of the validator's stake (other delegators, self-stake, SFDP) is unaffected.

**Example:** A validator sets `--block-commission` to 7,000 bps, keeping 70% of Marinade-attributable block rewards and sharing 30% with stakers. The validator produces 100 SOL in block rewards this epoch, and Marinade represents 20% of their total stake.

The bond is charged on the shared portion of the Marinade-attributable rewards:

```
30% × 100 SOL × 20% = 6 SOL
```

If the same validator had set `--block-commission` to 5,000 bps (keeping 50%, sharing 50%), their effective bid would have been higher, but if they had set it to 9,000 bps (keeping 90%, sharing only 10%), the effective bid would likely have fallen below the auction clearing price, and they would have received no Marinade stake that epoch.

### On-Chain Commission as a Floor

A validator's on-chain commission settings still apply as a floor.

Dynamic commission can share **more** than the on-chain commission implies, but it cannot share less than what has already been committed on-chain. For inflation, the auction uses the lower of the on-chain rate and the bond rate. For MEV, the bond rate is used only when it is strictly lower than the on-chain rate.

In practice: if a validator's on-chain inflation commission is 5% (the validator keeps 5%, stakers receive 95% on-chain) and `--inflation-commission` is set to 0 bps in the bond (committing to keep 0%, share 100% with stakers), the auction will charge the bond the difference and share that extra 5% with stakers through bond settlements.

***

## Common Configurations

Two configurations cover most validators' needs.

### **Maximum Competitiveness: 0 / 0 / 0**

```bash
validator-bonds -um configure-bond <vote-account> \
  --authority <bond-authority-keypair> \
  --inflation-commission 0 \
  --mev-commission 0 \
  --block-commission 0
```

This shares 100% of Marinade-attributable inflation, MEV, and block rewards with stakers (validator keeps 0% across all three). The effective bid rises and falls with actual earnings, keeping the validator competitive without monitoring the auction.

This is a strong starting point but is not always enough on its own. If a validator's base APY is below the auction clearing price even after sharing 100% of Marinade-attributable rewards, a static CPMPE bid may also be needed on top.

### **Margin Floor: 0 / 0 / 3,000**

```bash
validator-bonds -um configure-bond <vote-account> \
  --authority <bond-authority-keypair> \
  --inflation-commission 0 \
  --mev-commission 0 \
  --block-commission 3000
```

This shares 100% of Marinade-attributable inflation and MEV with stakers, while keeping 30% of block rewards for the validator (sharing 70%). Useful for validators whose hosting costs require a guaranteed margin floor on block rewards. The bid stays competitive in most epochs while retaining a known share of block rewards. Trade-off: in high-competition epochs, the validator may fall below the clearing price.

{% hint style="info" %}
**CLI notes.** Commission settings are stored in a separate on-chain configuration account, so the first `configure-bond` call that sets a commission may need `--rent-payer` to fund that account. Separately, `configure-bond` refuses to decrease `--cpmpe` unless `--force` is passed, because lowering a static bid while holding Marinade stake triggers the Bid Reduction Penalty.
{% endhint %}

***

## Static Bids and Dynamic Bids Together

Dynamic bidding is the recommended default, but static bids still have a role.

Most validators get the best result by combining both: dynamic commission to keep the bid responsive to actual rewards, plus a static CPMPE if their base APY needs an additional boost to clear the auction. The two are charged independently:

* **Static bid (CPMPE):** Charged from the bond based on Marinade stake delegated and the realized yield of the auction.
* **Dynamic commission:** Charged from the bond based on the difference between on-chain commissions and the configured bond commissions, applied to Marinade-attributable rewards earned that epoch.

See Bonds Settlements for the full charging mechanics.

#### **Example Scenario: Capturing Redistribution Events**

Large redistribution events happen more often than most validators realize.

When a validator with significant Marinade stake runs out of bond, withdraws from the auction, or gets removed, their stake needs to go somewhere fast. The algorithm allocates top-down by `max_yield`, and validators whose effective bid is above the clearing price at that moment receive that stake automatically.

In epoch 946, a mass blacklisting removed dozens of validators at once, including one holding approximately 59,000 SOL of Marinade stake and another holding approximately 98,000 SOL. Those positions became available for redistribution in that epoch. Validators whose commission settings kept their effective bid above the clearing price received that stake. Validators with stale or insufficient bids missed the window.

Dynamic bidding keeps the effective bid continuously calibrated to actual rewards, so a validator is positioned automatically when these windows open.

#### **Where to View the Configuration**

Two sources reflect the current bond configuration.

* **CLI:** Run `validator-bonds -um show-bond <bond-or-vote-account-address>` to see the current commission settings as stored on-chain. The CLI reflects state immediately after any transaction.
* **PSR dashboard:** The [PSR dashboard](https://psr.marinade.finance/) shows bond configuration under the validator's profile. The dashboard refreshes every few hours and is for reference. Use the CLI as the source of truth.


# maxStakeWanted Parameter

Cap the maximum amount of Marinade stake a validator wants to receive through SAM.

{% hint style="info" %}
**TL;DR:** Cap the Marinade stake a validator wants. The CLI takes lamports, dashboards show SOL, confirm units. A 10,000 SOL floor overrides any lower setting, `0` or unset means **no cap at all**, and lowering the cap below current stake does gradually shed the excess.
{% endhint %}

## Overview

The `maxStakeWanted` parameter sets a ceiling on how much Marinade stake a validator wants to receive through the Stake Auction Marketplace. Marinade will not target above this ceiling, but reaching it is not guaranteed. Validators must still place competitive bids and meet eligibility criteria to win stake up to the configured value.

{% hint style="warning" %}
**Unit mismatch alert:** The CLI (`configure-bond --max-stake-wanted`) takes the value in **lamports**. The PSR (Protected Staking Rewards) and validator-facing tools display it in **SOL**. 1 SOL = 1,000,000,000 lamports. Always double-check units before submitting the configuration transaction. A common mistake is typing the SOL amount into the CLI, which sets the cap at 0.000000001× the intended value.
{% endhint %}

***

## How It Works

Each epoch the auction computes an effective cap from the configured value:

```
effective_cap = max(minMaxStakeWanted, maxStakeWanted > 0 ? maxStakeWanted : unlimited)
```

`minMaxStakeWanted` is currently **10,000 SOL**. The live value is in [`auction-config.json`](https://github.com/marinade-finance/ds-sam-pipeline/blob/main/auction-config.json). Note what is **not** in that formula: the validator's current Marinade stake plays no part in it.

A few behaviors to understand before configuring:

* **10,000 SOL minimum floor:** Setting `maxStakeWanted` below 10,000 SOL has no effect, the floor still applies. A validator wanting to be capped below 10,000 SOL cannot achieve this through `maxStakeWanted` alone.
* **Zero or unset means no cap:** A value of `0`, or never setting the parameter, resolves to unlimited, not to zero and not to the current stake. This is the opposite of what the number suggests and is the most common misreading of this setting.
* **The cap applies to the auction target, not only to new stake:** Each epoch the auction rebuilds every validator's SAM target from zero and caps it at the effective cap. A validator whose current active Marinade stake is above the cap gets a target no higher than the cap, which puts it over target. The target can land lower still if a tighter constraint, most often bond capacity, binds before the cap does.
* **Lowering the cap does shed stake, gradually:** Being over target places the validator in the general redelegation tier, so the excess is redelegated over following epochs as the per-epoch rebalance budget allows. It is gradual and there is no fixed timeline, but it does happen without withdrawing the bond. See Stake Distribution and Decentralization.
* **Bids are charged on stake actually held:** While the excess is being redelegated, the validator continues to pay bids on whatever Marinade stake remains active each epoch, not on the lower cap.
* **Enforced each auction cycle:** The cap is applied every epoch, so it takes effect from the next auction after the configuration transaction lands.
* **No effect when already at or below the cap:** If existing delegated stake is at the cap, no new stake is targeted and nothing is shed.

***

### Setting the Cap

Use the validator bonds CLI to set or update the cap.

```bash
validator-bonds -um configure-bond <vote-account-address> \
  --authority <bond-authority-keypair> \
  --max-stake-wanted <lamports>
```

For example, to cap incoming Marinade stake at 25,000 SOL:

```bash
validator-bonds -um configure-bond <vote-account-address> \
  --authority <bond-authority-keypair> \
  --max-stake-wanted 25000000000000
```

(25,000 SOL × 1,000,000,000 lamports/SOL = 25,000,000,000,000 lamports.)

### Examples

#### **Example 1: Capped Growth**

A validator sets `maxStakeWanted` to 25,000 SOL and currently has 22,000 SOL delegated from Marinade. Even with a competitive bid, sufficient bond, and full eligibility, Marinade will only target up to 3,000 SOL more before the cap is reached.

#### **Example 2: Cap Below Current Stake**

A validator currently has 40,000 SOL delegated from Marinade and lowers `maxStakeWanted` to 30,000 SOL. From the next auction, the validator's SAM target is 30,000 SOL while 40,000 SOL is still active, so the validator is 10,000 SOL over target. That excess is redelegated to other validators over the following epochs, at the pace the per-epoch rebalance budget allows. The validator keeps paying bids on whatever remains active in the meantime. Withdrawing the bond is not required for this, and is the wrong tool unless the intention is to leave SAM entirely.

#### **Example 3: Setting Below the 10,000 SOL Floor**

A new validator sets `maxStakeWanted` to 5,000 SOL, expecting to be capped at 5,000 SOL. The effective cap is `max(10,000, 5,000) = 10,000 SOL`. The validator's setting is overridden by the floor, and Marinade may target up to 10,000 SOL if the bid is competitive. To stay below 10,000 SOL, the validator must rely on bid and bond sizing rather than the cap parameter.

#### **Recommended Approach**

Start with a small cap and raise it as the bond and operations can support more stake.

Raising the cap takes effect from the next auction. Lowering it also takes effect from the next auction, but the stake above the new cap leaves gradually rather than at once, so plan bond coverage for the transition period. Starting low gives validators control over growth and avoids being surprised by a large allocation that exceeds bond capacity.

#### **Disabling the Cap**

To remove the limit entirely, set the cap to `0` or leave it unset. Either resolves to unlimited, and growth is then governed only by bid competitiveness, bond size, and decentralization constraints. Setting a very large lamport value such as `1000000000000000000` (10^18) has the same practical effect.

***

## Common Pitfalls

A few patterns that cause support tickets.

* **Setting the cap in SOL units instead of lamports:** Causes the cap to be \~1 billion times smaller than intended. Always confirm units before submitting.
* **Setting the cap to `0` to stop receiving stake:** Does the opposite. `0` means unlimited. To stop receiving Marinade stake entirely, withdraw the bond. See Eligibility Criteria.
* **Setting the cap below 10,000 SOL:** Has no effect. The 10,000 SOL floor overrides any lower value.
* **Setting the cap too low and missing redistribution events:** When other validators exit SAM (blacklist, bond withdrawal, bond underfunding), their stake is reallocated to validators with competitive bids. A conservative cap can lock a validator out of these allocations even if the bid would have won.
* **Setting the cap without considering bond capacity:** The cap is independent of the bond, so a high cap with a small bond can lead to receiving more stake than the bond can cover. Insufficient bond relative to active stake triggers the [Bond Risk Reduction Mechanism](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism).
* **Expecting the cap to shed stake immediately:** It does not. The excess leaves over multiple epochs, bounded by the rebalance budget.

### Where to View the Current Setting

Two sources reflect the current `maxStakeWanted` value.

* **CLI:** `validator-bonds -um show-bond <vote-account-address>` returns the on-chain value immediately. The CLI is the source of truth.
* **PSR dashboard:** The [PSR dashboard](https://psr.marinade.finance/) displays the current cap in SOL under the validator's bond configuration. Refreshes every few hours.

The effective cap actually applied in a given epoch, alongside the resulting SAM target, is in that epoch's folder in the [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions).


# Stake Matching

Marinade matches a portion of a validator's external stake with additional delegation, with no Protected Staking Rewards (PSR) slashable bond required on the matched portion.

{% hint style="info" %}
**TL;DR:** Marinade matches 10% of a validator's non-SFDP external stake and 30% of SFDP stake as additional delegation, with no slashable bond required on the matched portion. Bids still apply on matched stake, and matches below 1,000 SOL collapse to zero.
{% endhint %}

## Overview

To support a broader set of validators and make participation in SAM more accessible, Marinade matches a portion of validator-attracted external stake with additional delegation. The matched portion does not require PSR (Protected Staking Rewards) slashable bond coverage, lowering the capital barrier for validators who already have stake from other sources.

Bids are still charged on matched stake, and the validator's bond must have enough SOL to cover those bids. Matching is designed to broaden validator participation across the network, not to maximize matched stake for any individual validator.

{% hint style="info" %}
In Marinade's source code, matched stake is referred to as **unprotected stake** (`unprotectedStakeSol`). The two terms refer to the same thing. Docs use "stake matching"; the field name in auction outputs and config uses "unprotected."
{% endhint %}

## What Counts as External Stake

The matching base is the validator's **total activated stake minus their own self-stake and minus SFDP/foundation stake**. Everything left over is treated as the non-SFDP external base, and SFDP stake is matched separately at a higher rate.

* **Counts toward the non-SFDP base:** Direct retail stake, stake from other liquid staking protocols (jpool, blaze, and so on), and any other third-party delegation.
* **Counts toward the SFDP base:** SFDP (Solana Foundation Delegation Program) delegation, matched at the higher rate.
* **Excluded entirely:** The validator's own self-stake. PSR bond counts as self-stake for this calculation.

{% hint style="warning" %}
**Marinade's own delegation is not excluded from the base.** In `ds-sam`, the non-SFDP base is computed as `totalActivatedStake - selfStake - foundationStake`. Marinade-delegated stake (Liquid, Native, Select, and earlier matched stake) is not subtracted, so it sits inside the 10% base. Check this against the current pipeline before relying on it for planning.
{% endhint %}

External stake is measured from the same epoch snapshot used for all other stake calculations in the auction.

### How Matching Works

Matching is deterministic and automatic. Validators do not need to configure or opt into it. The matched amount is calculated from two fixed rates applied to two different stake categories.

* **10% of the non-SFDP base** (retail, other LSTs, third-party delegation): Configured in `auction-config.json` as `unprotectedDelegatedStakeDec: 0.1`.
* **30% of SFDP/foundation stake**: Configured as `unprotectedFoundationStakeDec: 0.3`.

The formula:

```
matched_cap = 0.1 x (total_activated_stake - self_stake - SFDP_stake)
            + 0.3 x SFDP_stake
```

A validator with only third-party external stake gets exactly 10% matched. A validator with only SFDP stake gets exactly 30% matched. A mixed stake composition gets a weighted sum.

The result is then clipped by the per-validator matching cap, and only afterwards tested against the 1,000 SOL floor.

{% hint style="warning" %}
**1,000 SOL minimum, applied after the cap.** The 0.4% per-validator cap is applied first. If the **capped** value is below 1,000 SOL, it collapses to zero and no matched stake is allocated. This is the `minUnprotectedStakeToDelegateSol` parameter in the auction config. A validator with very small external stake will receive no matching.
{% endhint %}

#### **Caps and Constraints**

* **Per-validator matching cap:** Up to 0.4% of Marinade's total TVL in SOL can be matched per validator (`maxUnprotectedStakePerValidatorDec: 0.004`). Multiply 0.004 by the current TVL to get the live figure. Current TVL is published on [Marinade stats](https://stats.marinade.finance/) and by the [stats API](https://api.marinade.finance/docs).
* **Separate from the 15% MIP-19 cap:** The 0.4% matching cap is independent of the 15% per-validator cap on direct SAM stake ([MIP-19](https://forum.marinade.finance/t/mip-19-improving-sam-auction-stake-priority-bond-risk-reduction-mechanism-higher-validator-caps/1969)). A validator at the 15% MIP-19 cap can still receive matched stake up to the 0.4% matching cap.
* **Bond-limited in practice:** Although no slashable bond is required, the amount actually delegated is `min(matching cap, bond balance / (idealBidReservePmpe / 1000))`. A thin bond reduces matched stake even when the matching cap is far higher, because the bond must still cover bids on the matched portion.
* **Auction requirement:** Validators must still win stake through the auction to receive matched stake. Matched stake is added on top of direct SAM stake won, not in place of it.
* **No PSR slashable bond required:** Matched stake does not require the slashable portion of the bond that direct SAM stake requires. Bids are still charged on matched stake (see below).

### Bids Still Apply to Matched Stake

The bid configured by the validator (CPMPE, cost per 1,000 SOL of delegated stake per epoch, and dynamic commission) is charged on the full delegated stake, including the matched portion.

What "no bond required" specifically means: the slashable bond reserve that protects against PSR-triggering events (downtime, sandwich attacks) is not required for the matched portion. The protection model for matched stake instead relies on the validator's existing accountability to the source of the external stake. PSR does not provide 100% coverage by design.

Matched stake is also excluded from the exposed-stake base used by the Bond Risk Reduction Mechanism, so it does not push a validator toward the bond risk fee. The bid reserve it requires is accounted for separately as `minUnprotectedReserve` and `idealUnprotectedReserve`.

#### Worked Example

The examples below use the pre-cap matching formula. Apply the 0.4% per-validator cap and the 1,000 SOL floor afterwards.

**Example 1: Pure Third-Party Stake**

A validator has 50,000 SOL of non-SFDP external stake, no SFDP, and wins 15,000 SOL of direct SAM stake at auction.

```
matched_cap = 0.1 x 50,000 + 0.3 x 0 = 5,000 SOL
```

Total Marinade-delegated stake: 15,000 + 5,000 = 20,000 SOL. The bond is charged the bid on all 20,000 SOL. The slashable bond requirement covers only the 15,000 SOL of direct SAM stake.

**Example 2: Pure SFDP Stake**

A validator has 50,000 SOL of SFDP stake, no other external stake, and wins 15,000 SOL of direct SAM stake.

```
matched_cap = 0.1 x 0 + 0.3 x 50,000 = 15,000 SOL
```

Total Marinade-delegated stake: 15,000 + 15,000 = 30,000 SOL. SFDP stake gets a higher match rate, so the same external balance yields three times the match in this case.

**Example 3: Mixed External Stake**

A validator has 30,000 SOL of non-SFDP external stake plus 20,000 SOL of SFDP stake, and wins 15,000 SOL of direct SAM stake.

```
matched_cap = 0.1 x 30,000 + 0.3 x 20,000
            = 3,000 + 6,000
            = 9,000 SOL
```

Total Marinade-delegated stake: 15,000 + 9,000 = 24,000 SOL.

**Example 4: Below the Minimum**

A validator has 5,000 SOL of non-SFDP external stake and wins 2,000 SOL of direct SAM stake.

```
matched_cap = 0.1 x 5,000 = 500 SOL
```

500 SOL is below the 1,000 SOL minimum, so the match collapses to zero. The validator receives only the 2,000 SOL of direct SAM stake. No matching is added.

***

## Where to See Matched Stake

Matched stake is published in the per-epoch auction outputs.

* **Auction outputs:** Each epoch's `auctions/<epoch>/outputs/results.json` in the [ds-sam-pipeline repository](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions) records matched stake and its cap per validator alongside direct SAM stake. The relevant fields use the internal "unprotected stake" naming.
* **SAM scores API:** `https://scoring.marinade.finance/api/v1/scores/sam?epoch=X` exposes `values.unprotectedStakeSol` and `unprotectedStakeCapSol` per validator for the given epoch.
* **PSR dashboard and validator dashboard:** These show total Marinade-delegated stake without separating direct from matched. Use the auction outputs or the scores API for the breakdown.


# Bonds Settlements

How Marinade settles validator bids each epoch, with formula, worked example, and where to view settlements.

{% hint style="info" %}
**TL;DR:** Each epoch, Marinade charges the validator's bond for static bids (CPMPE x active stake) and dynamic commission differences. Settlements run automatically at the start of each epoch for the epoch that just closed.
{% endhint %}

## Overview

A settlement is the on-chain transaction Marinade creates each epoch to transfer SOL from a validator's bond to stakers, covering the validator's bid for the previous epoch's delegated stake. Settlements run automatically at the start of each epoch for the epoch that just closed.

### What Gets Charged

Each epoch a validator receives Marinade stake, their bond is charged for two distinct components.

* **Static bid (CPMPE, cost per 1,000 SOL of delegated stake per epoch):** A per-1,000-SOL charge based on the active Marinade stake delegated to you and the auction's realized yield for the epoch.
* **Dynamic commission bid:** A charge based on the actual rewards earned that epoch and the difference between the validator's on-chain commission and the configured bond commission.

These charges are calculated independently and applied together in the settlement transaction.

***

## Settlement Types

Bids are only one of the reasons a bond is charged. Every settlement carries a **reason** and a **funder**. The full set of reasons, as defined in the validator-bonds program, is below.

| Reason                                     | Trigger                                                                                      | Funder                      | Recipient                                  |
| ------------------------------------------ | -------------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------ |
| `Bidding`                                  | Validator won auction stake and owes the bid for the epoch                                   | Validator bond              | mSOL stakers                               |
| `PriorityFee`                              | Activating stake pool share calculated by the SAM pipeline                                   | Validator bond              | Activating mSOL stakers                    |
| `BidTooLowPenalty`                         | Validator lowered the total offer below the winning level while still holding Marinade stake | Validator bond              | Stakers, plus a Marinade and DAO fee split |
| `BlacklistPenalty`                         | Validator blacklisted for sandwich attacks or slow slots                                     | Validator bond              | Stakers                                    |
| `BondRiskFee`                              | Bond underfunded relative to the exposed stake, forcing undelegation                         | Validator bond              | Stakers                                    |
| `InstitutionalPayout`                      | Select and institutional native stakers fell below the PSR-percentile APY floor              | Validator bond              | Institutional and Select stakers           |
| `ProtectedEvent` / `DowntimeRevenueImpact` | Validator produced fewer vote credits than expected                                          | Validator bond, full amount | Stakers                                    |
| `ProtectedEvent` / `CommissionSamIncrease` | Validator raised commission above the level declared to SAM                                  | Validator bond              | Stakers                                    |

{% hint style="info" %}
**Downtime coverage.** `DowntimeRevenueImpact` carries a 1% grace (`grace_downtime_bps: 100`), read as a threshold: a loss under that line is not charged at all. As of [MIP-23](https://forum.marinade.finance/t/mip-23-full-validator-coverage-of-psr-downtime/1998), effective epoch 1040, the validator bond covers the full downtime charge across the whole uptime range beyond the grace period, and the DAO no longer funds any part of it. Before epoch 1040, the bond covered only the upper half of the loss and a second, DAO-funded settlement covered the rest. `min_settlement_lamports` is 0.1 SOL. See Protected Staking Rewards.
{% endhint %}

Two further protected-event kinds, `CommissionIncrease` and `LowCredits`, exist in the program for parsing historical data only. They predate SAM and are no longer emitted.

***

## Bonds Calculation Formula

The bid charged each epoch combines the static bid component and the dynamic commission component.

**Bid Charged** = **Static Bid** + **Dynamic Commission Bid**

```
Bid Charged = (Active stake from Marinade at end of epoch x Effective Bid) / 1000
            + (Total Rewards Earned from Marinade Stakers x Commission Rate)
```

Where:

* **Active stake from Marinade:** The total Marinade-delegated stake on the validator at the end of the epoch.
* **Effective Bid:** The realized yield for the epoch in lamports per 1,000 SOL, derived from the auction. This is typically lower than the configured CPMPE since the last-price auction sets the realized yield to the lowest yield on the winning list. See Stake Auction Market for details on how realized yield is set. In source code, Effective Bid appears as `effBid` or `auctionEffectiveBidPmpe`.
* **Commission Rate:** Calculated separately for inflation rewards, MEV (Maximal Extractable Value) rewards, and block rewards. Based on the difference between the on-chain commission and the configured commission in the bond. Marinade uses the lower value between the two (more favorable to stakers) as the rate stakers actually receive.

See Dynamic Bids for full mechanics of the commission portion.

### Worked Example

Consider a validator with the following configuration in an epoch:

* **Active Marinade stake:** 100,000 SOL
* **Configured CPMPE:** 0.10 SOL per 1,000 SOL per epoch
* **Realized yield (effective bid):** 0.08 SOL per 1,000 SOL (auction floor)
* **On-chain inflation commission:** 5% (validator keeps 5% on-chain)
* **Configured bond inflation commission:** 3% (validator commits to keeping only 3%)
* **Total inflation rewards earned from Marinade stake:** 50 SOL
* **MEV and block rewards:** 0 (omitted for clarity)

#### **Static bid charge**

```
Static Bid = (100,000 x 0.08) / 1,000 = 8 SOL
```

The validator is charged 8 SOL even though their configured CPMPE was 0.10. The auction settled at 0.08, so the validator is only charged enough to deliver the realized yield.

#### **Dynamic commission charge**

On-chain, the validator's 5% commission keeps 2.5 SOL out of 50 SOL of inflation rewards on Marinade stake (stakers receive 47.5 SOL on-chain). The bond commission of 3% means the validator commits to keeping only 1.5 SOL. The difference of 2% is charged from the bond and delivered to stakers via settlement:

```
Commission diff = (5% - 3%) x 50 SOL = 1 SOL
```

#### **Total settlement charge**

```
Total = 8 SOL (static) + 1 SOL (dynamic) = 9 SOL
```

The validator's bond is debited 9 SOL at the start of the next epoch.

***

## Where to View Settlements

Settlement history is published in several places.

* **PSR (Protected Staking Rewards) Feed Discord channel:** The [#psr-feed channel in Marinade Discord](https://discord.com/invite/yTdH8YkYKg) posts a per-epoch summary of all settlements, including totals by reason (Bidding, BondRiskFee, and so on) and per-validator amounts. Quickest way to see what was charged.
* **Bonds API:** `https://validator-bonds-api.marinade.finance/bonds/bidding` returns the current state of every bidding bond, including `funded_amount`, `effective_amount`, `remainining_settlement_claim_amount` and the epoch the snapshot was taken for. Use `/bonds/institutional` for Select bonds.
* **Auction scores API:** `https://scoring.marinade.finance/api/v1/scores/sam?epoch=X` returns the auction outcome including per-validator allocations and bids. Replace `X` with the target epoch.
* **Pipeline outputs:** Each epoch's full auction output is committed in the [ds-sam-pipeline auctions folder](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions) under `<epoch>/outputs/results.json`.
* **Settlement data on Google Cloud:** Raw settlement JSON is published to the [marinade-validator-bonds-mainnet GCS bucket](https://console.cloud.google.com/storage/browser/marinade-validator-bonds-mainnet/) (Google login required).
* **PSR dashboard:** The [PSR dashboard](https://psr.marinade.finance/) shows the validator's bond balance and recent activity. Refreshes every few hours, so use the auction scores API or pipeline outputs for the freshest data.

## Settlement Lifecycle

Settlements have a fixed lifecycle from creation to expiry.

* **Created at the start of the next epoch:** A settlement for epoch X is created at the start of epoch X+1, once the snapshot at the end of epoch X is processed. This is when the bond is debited.
* **Active for 3 epochs:** During this window, stakers can claim their portion of the settlement. The 3-epoch claim window is defined in the on-chain Validator Bonds config (`epochsToClaimSettlement`, currently **3** on the SAM bidding config `vbMaRfmTCg92HWGzmd53APkMNpPnGVGZTUHwUJQkXAU`). Claiming opens after `slotsToStartSettlementClaiming`, currently **200,000 slots**, which is roughly 17 to 22 hours depending on slot times.

{% hint style="info" %}
**Select and institutional settlements run on a different config.** The institutional config `VbinSTyUEC8JXtzFteC4ruKSfs6dkQUUcY6wB1oJyjE` carries `epochsToClaimSettlement` of **4**, not 3, and a bond withdrawal lockup of **1 epoch** rather than 3. If you operate both a SAM bond and a Select bond, do not carry timings from one to the other. Both were read on chain on 18 September 2026.
{% endhint %}

* **Unclaimed funds return to the bond:** Any SOL in the settlement that is not claimed by stakers within the active window is returned to the validator's bond when the settlement expires. \* \*\*Extra SOL handling:\*\* A settlement may contain slightly more SOL from the bond than the strict charge requires. This allows Marinade to enforce the on-chain minimum of 1 SOL per stake account (\`minimumStakeLamports\`) during distribution. The unused remainder returns to the bond on expiry.

To stay informed when settlements affect the bond, set up [Validator Bond Notifications](/marinade-protocol/protocol-overview/stake-auction-market/bond-notifications).

***

## Related Mechanisms

The bond is the source for several distinct charges, each with its own trigger and formula. They can apply in the same epoch.

* [**Activating Stake Fee**](/marinade-protocol/protocol-overview/stake-auction-market/activating-stake-fee)**:** Charged once when new stake activates, scaled by how far the validator bid above the clearing rate. **Currently paused:** the fee multiplier `activatingStakePmpeMult` is set to 0, so no activating fee is charged.
* [**Bid Reduction Penalty**](/marinade-protocol/protocol-overview/stake-auction-market/bid-reduction-penalty)**:** Charged when a validator lowers their bid or raises their commissions after winning stake.
* [**Bond Risk Reduction Mechanism**](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism)**:** Charged when a validator's bond is underfunded relative to the active stake they hold.
* [**Blacklist Policy**](/marinade-protocol/protocol-overview/stake-auction-market/blacklist-policy)**:** Charged when a validator is blacklisted for sandwich attacks or slow slots.


# Bid Reduction Penalty

Penalty mechanics for validators who reduce their bid after receiving stake.

{% hint style="info" %}
**TL;DR:** A validator pays nothing as long as the total offer keeps clearing the auction, at any size of change. A charge applies only when a reduction takes the offer below the winning level while Marinade stake is still delegated to the validator. It settles the difference for the time the stake needs to redelegate, proportional to the reduction.
{% endhint %}

## Overview

Marinade's auction matches stake to what each validator offers. The Bid Reduction Penalty exists for one situation: a validator reduces the total offer below the level that wins stake, but Marinade stake stays delegated for the epochs it takes to redelegate. During that window stakers earn below the price the auction set, and the penalty settles that difference from the bond.

The rule is the same for every validator and every kind of change, whether the offer moves through the bid or through inflation, MEV, or block reward commissions, on chain or in the bond.

{% hint style="warning" %}
**Paying does not keep the stake.** A validator who reduces the offer below the winning level is unstaked, even after the difference is settled. Marinade rebalances the stake to protect the protocol and uphold fairness for stakers.
{% endhint %}

***

## Key Concepts

**The total offer:** A validator's offer is the bid plus the inflation, MEV, and block rewards passed to stakers. The auction prices stake on that offer each epoch. In auction outputs the validator's obligation appears as `bondObligationPmpe`.

**The winning level:** The auction's clearing price, the total offer of the last validator that still wins stake in that epoch. An offer at or above the winning level clears, and stake keeps flowing. An offer below it no longer clears, so stake stops flowing and existing Marinade stake redelegates away. The per-validator figure is `effParticipatingBidPmpe`, the minimum bid needed to stay in the winning set.

**What triggers the penalty:** A reduction of the total offer that takes it below the winning level while the validator still holds Marinade stake. Reward and market drift never trigger the penalty on their own. Only the validator's own setting changes do.

**The comparison basis:** The offer is not compared against the previous epoch alone. Marinade takes the **lower** of this epoch's `effParticipatingBidPmpe` and the worst `effParticipatingBidPmpe` across the last `bidTooLowPenaltyHistoryEpochs` auctions, currently **3**. That floor is then relaxed by `bidTooLowPenaltyPermittedDeviationPmpe`, currently **0.01**, so an offer within 1% below the floor is not penalised.

**What it does:** It settles the difference from the bond, proportional to the size of the reduction and the stake held. A validator whose offer still clears never pays, at any size of change. Below the winning level, a gradual change and an at-once change settle the same total. A validator receiving new stake is never charged.

### How the Amount Is Determined

The charge scales with three things: how far the offer fell below the relaxed historical floor, the amount of Marinade stake held, and the number of epochs the stake takes to redelegate. A small reduction on a small delegation settles little. A large reduction on a large delegation, held across several redelegation epochs, settles more.

The per-epoch amount is published as `revShare.bidTooLowPenaltyPmpe` in the SAM scores API, `https://scoring.marinade.finance/api/v1/scores/sam?epoch=X`, and per-validator charges are summarised on the [PSR dashboard](https://psr.marinade.finance/).

{% hint style="info" %}
**Not a protected event.** The Bid Reduction Penalty settles under the `BidTooLowPenalty` settlement reason, which is separate from the protected events (`DowntimeRevenueImpact` and `CommissionSamIncrease`). The PSR protected-events view does not list it.
{% endhint %}

### How to Avoid It

There are two clean paths.

* **Keep the offer at or above the winning level:** Any change to the bid or commission is then repriced by the auction at no cost, at any size.
* **Exit cleanly:** To scale down or leave, withdraw the bond, let the stake redelegate over the following epochs, then rejoin the auction with a new offer. See Eligibility Criteria for the full exit flow.

### Two Layers of Protection

Two separate mechanisms keep stakers whole, and they cover different windows.

* **Per-epoch settlement:** Each epoch is sold to stakers at the commission the auction priced. When a validator raises any commission within the epoch, whether inflation, MEV, or block rewards, the settlement covers only the rewards stakers should have received that epoch, drawn from the bond and subject to a small grace. It appears as the `CommissionSamIncreaseSettlement` event in the Discord validators feed and on the PSR dashboard. Nothing is charged beyond that difference, and the new commission prices in normally from the next auction.
* **Bid Reduction Penalty:** Covers the redelegation window after a validator reduces the offer below the winning level, which the per-epoch settlement cannot see.

***

## Related Mechanisms

Other mechanisms can charge a validator's bond in the same epoch:

* [**Activating Stake Fee**](/marinade-protocol/protocol-overview/stake-auction-market/activating-stake-fee): a one-time charge on new stake as it activates, scaled by how far above the clearing bid the validator sits. **Currently paused:** `activatingStakePmpeMult` is set to 0, so no activating fee is charged.
* [**Bond Risk Reduction Mechanism**](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism): charged when the bond is underfunded relative to active stake. It addresses bond size relative to stake, not the offer itself.


# Activating Stake Fee

One-time fee charged when new stake activates, scaled by how far the validator bid above the auction clearing rate.

{% hint style="warning" %}
**The activating stake fee is currently paused.** The fee multiplier is set to zero, so no activating fee is charged on new stake. The mechanism remains part of the protocol and may be reactivated. Any change will be announced in advance.
{% endhint %}

{% hint style="info" %}
**TL;DR:** A one-time fee charged when new stake activates after winning the auction. Sized by how far the validator bid above the clearing rate (overbid × activating stake). Avoid surprises by setting `maxStakeWanted` to control incoming stake before bidding.
{% endhint %}

## Overview

The activating stake fee is a one-time charge on new stake delegated to a validator through the SAM auction. The fee is sized by how far the validator's bid sits above the auction clearing rate. The fee revenue funds the redelegation that brings the new stake in, which lets Marinade move more stake to high bidders and improves staker APY.

### Why this exists

Stakers trust Marinade to allocate stake to the validators that deliver the most value. All Marinade staking products that use SAM rely on this. SAM achieves it through an auction, where validators bid for stake. Stake then needs to be redelegated from lower-bidding validators to higher-bidding ones as bids change. Redelegation has a real cost: stake spends one epoch unproductive while it deactivates and reactivates, which reduces staker APY.

Without a way to fund that cost, Marinade can only redelegate when the bid revenue from the destination validator at least partially offsets the activation hit. In a slower bid environment, this means less redelegation and longer waits for validators to receive meaningful stake from SAM.

The activating stake fee unlocks this bottleneck. Validators who win new stake pay a fee that helps Marinade cover the cost of the redelegation that brought it in. The fee revenue funds further redelegation, which lets Marinade move more stake to high bidders. Validators get faster access to stake when they bid for it, and stakers get higher APY because their stake reaches better validators sooner.

### How payments work

Validators continue to pay the existing per-epoch payment on their active SAM stake. This is the auction bid payment described in the [SAM overview](/marinade-protocol/protocol-overview/stake-auction-market). The activating stake fee is paid **on top of** this, on activating stake only.

Activating stake means stake that Marinade just delegated to the validator.

The full payment for an epoch is:

```
payment = auctionEffectiveBidPmpe × activeStake / 1000  
        + max(0, bidPmpe - auctionEffectiveBidPmpe) × activatingStake / 1000
```

The new term is the activating fee. The size of the fee comes from the **overbid**: the gap between a validator's `bidPmpe` and the auction's `auctionEffectiveBidPmpe`. A larger overbid means a larger fee on each unit of activating stake.

Each unit of new stake is charged exactly once. It appears as activating in one epoch's snapshot, then transitions to active in the next.

### Worked examples

Two validators with the same auction rank pay the same activating fee, regardless of commission. A higher commission raises both `bidPmpe` and `auctionEffectiveBidPmpe` by the same amount, so the overbid that drives the fee stays constant.

#### **Example 1: scaling with the overbid**

Both validators have 100,000 SOL of activating stake.

|                         | Validator A | Validator B |
| ----------------------- | ----------- | ----------- |
| bidPmpe                 | 0.420       | 0.480       |
| auctionEffectiveBidPmpe | 0.387       | 0.387       |
| Overbid                 | 0.033       | 0.093       |
| Activating fee          | 3.3 SOL     | 9.3 SOL     |

The fee scales linearly with the overbid. A larger gap above the clearing rate means a larger fee on each unit of activating stake.

#### **Example 2: scaling with activating stake**

Both validators have the same overbid of 0.033.

|                  | Validator C | Validator D |
| ---------------- | ----------- | ----------- |
| Activating stake | 100,000 SOL | 250,000 SOL |
| Activating fee   | 3.3 SOL     | 8.25 SOL    |

The fee scales linearly with the amount of activating stake received in the epoch.

#### **Example 3: same rank, different commissions**

Two validators with the same auction rank but different commission structures.

|                         | Validator E | Validator F |
| ----------------------- | ----------- | ----------- |
| bidPmpe                 | 0.420       | 0.450       |
| auctionEffectiveBidPmpe | 0.387       | 0.417       |
| Overbid                 | 0.033       | 0.033       |
| Activating stake        | 100,000 SOL | 100,000 SOL |
| Activating fee          | 3.3 SOL     | 3.3 SOL     |

Both validators pay the same fee because their overbid is identical. Commission structure does not create unfairness in the activating fee.

## Managing your participation

The activating fee can recur. As long as a validator is bidding above clearing and has room under their `maxStakeWanted` cap, Marinade may continue allocating new stake to them in subsequent epochs. Each new allocation triggers its own activating fee.

Validators have two levers to manage how much new stake they receive, and therefore how much they pay.

* **Lower `maxStakeWanted`:** Setting `maxStakeWanted` at or below current active stake means no new stake will be allocated, regardless of the bid. Existing active stake stays delegated. This is the cleanest way to stop receiving new allocations without affecting bid history. See [`maxStakeWanted` Parameter](/marinade-protocol/protocol-overview/stake-auction-market/maxstakewanted-parameter).
* **Lower `bidPmpe`:** Reducing the bid lowers the overbid and the fee per unit of activating stake. It also lowers the validator's auction rank, which in most cases means losing the rank required to win new stake at all. Validators typically need to be first in the rank order to win stake, so a lower bid often results in no allocation rather than a smaller fee. Lowering `bidPmpe` from one epoch to the next can also trigger the [Bid Reduction Penalty](/marinade-protocol/protocol-overview/stake-auction-market#bid-reduction-penalty) (`bidTooLowPenalty`). Adjusting `maxStakeWanted` is almost always the better lever.

### When changes take effect

Changes to `maxStakeWanted` and `bidPmpe` take effect in the next auction. Validators should set new values before the end of the current epoch so they are picked up.

### Previewing activating stake

The [PSR dashboard](https://psr.marinade.finance/) shows an estimation of incoming delegation for the current epoch before the snapshot locks. Validators can use it to anticipate the fee before it settles. The dashboard refreshes every few hours, so use the CLI for real-time values.

#### Related mechanisms

The activating stake fee and the [Bond Risk Reduction Mechanism](/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism) both reference `auctionEffectiveBidPmpe` and can apply in the same epoch, but they cover different situations. The activating stake fee charges validators on new stake won through the auction. The Bond Risk Reduction Mechanism applies when a validator's bond is below the minimum required for their existing active stake.

The activating stake fee is also distinct from the [Bid Reduction Penalty](/marinade-protocol/protocol-overview/stake-auction-market/bid-reduction-penalty). The Bid Reduction Penalty triggers when a validator lowers their bid after winning stake. The activating stake fee triggers when new stake activates, regardless of whether the bid changed.

{% hint style="info" %}
For the governance context behind this change, see [MIP-19 on the Marinade Forum](https://forum.marinade.finance/t/mip-19-improving-sam-auction-stake-priority-bond-risk-reduction-mechanism-higher-validator-caps/1969).
{% endhint %}


# Bond Risk Reduction Mechanism

Covers the Bond Risk Reduction Mechanism: what triggers it, how the fee is calculated, and what validators need to do to avoid it.

{% hint style="info" %}
**TL;DR:** Triggers when the bond covers fewer than 5 epochs of obligations on existing stake. Marinade undelegates a portion of stake and charges a fee from the bond. Avoid it by maintaining bond coverage at the 13-epoch target.
{% endhint %}

## Overview

When a validator's bond falls below the minimum required coverage for their Marinade stake allocation, Marinade undelegates a portion of their stake so that the remaining stake is still covered by their bond, and charges a fee from their bond. The fee compensates stakers for the cost of that redelegation.

## Why This Exists

> Under-bonded validators used to push the cost of redelegation onto stakers. This mechanism shifts that cost back to the validator responsible for it.

When Marinade delegates stake to a validator, stakers are placing trust in that validator. The bond is the collateral that backs that trust. It covers obligations like PSR settlements and auction bid costs across multiple epochs. If a validator's bond is too small relative to their stake allocation, stakers are exposed to risk without adequate protection.

Historically, when validators remained in the auction without maintaining adequate bond coverage, Marinade was forced to undelegate their stake. Stakers absorbed the cost of that process, including the warmup period and opportunity cost of moving stake to a properly bonded validator. This was not fair to stakers.

The Bond Risk Reduction Mechanism fixes this. When underfunding occurs, a portion of the validator's stake is undelegated and a fee is charged from their bond to cover the cost of that redelegation. Stakers are compensated directly. The cost falls on the validator, not the staker.

This is not a penalty for bad behavior. It is risk compensation. If a validator maintains adequate bond coverage, the mechanism never triggers.

#### Not the same as the Bid Reduction Penalty

The Bond Risk Reduction Mechanism and the [Bid Reduction Penalty](/marinade-protocol/protocol-overview/stake-auction-market#bid-reduction-penalty) look similar from the outside (both charge the validator's bond and may move stake away), but they address different situations:

<table><thead><tr><th width="203">Aspect</th><th>Bid Reduction Penalty</th><th>Bond Risk Reduction Mechanism</th></tr></thead><tbody><tr><td><strong>Trigger</strong></td><td>Validator lowers their static bid versus the previous epoch</td><td>Validator's funded bond is too small for the stake they hold</td></tr><tr><td><strong>What it measures</strong></td><td>Whether past bids are being honoured</td><td>Whether the bond can cover future obligations</td></tr><tr><td><strong>Action on stake</strong></td><td>Stake may be reallocated away (separate rebalancing step)</td><td>Stake is directly undelegated in the same epoch the fee is charged</td></tr><tr><td><strong>Can both apply in one epoch?</strong></td><td>Yes, they are independent checks</td><td>Yes, they are independent checks</td></tr></tbody></table>

A validator keeping their bid high but letting their bond drift down will not trigger the Bid Reduction Penalty but may well trigger the Bond Risk Reduction Mechanism. Conversely, cutting the bid with an adequate bond triggers the Bid Reduction Penalty but not the Bond Risk Reduction Mechanism.

## How It Works

> Each epoch, if the bond is too small for the stake it holds, Marinade undelegates enough stake to restore coverage and charges a fee from the bond to cover the cost.

Every epoch, Marinade checks whether a validator's bond balance is sufficient to cover their current stake allocation. If the bond falls below the minimum threshold, two things happen:

* A portion of the validator's stake is undelegated, sized so that the remaining bond adequately covers the remaining stake.
* A fee is charged from the bond and distributed to stakers to compensate for the cost of that redelegation.

{% hint style="warning" %}
If the remaining stake after partial undelegation would require less than 7 SOL in bond, complete undelegation will occur rather than leaving a small underfunded position.
{% endhint %}

## When the Mechanism Triggers

> The mechanism runs once per epoch and fires when the funded bond covers less than 5 epochs of revenue on the current Marinade stake.

The mechanism triggers when a validator's funded bond amount falls below the minimum required to cover their current Marinade stake allocation for at least 5 epochs of revenue. The "5 epochs" figure refers to the **current epoch plus 4 future epochs** of projected obligation. In the source configuration, this is named `minBondEpochs = 4` (future epochs only). Both ways of counting describe the same threshold.

A key point for validators: `expectedMaxEffBidPmpe` can never exceed the validator's own bid. Maintaining a bond that covers their own bid for the required number of epochs is always sufficient to avoid the fee. If a validator's bond covers less than that, they are at risk. Validators can see their `expectedMaxEffBidPmpe` and other relevant values in the SAM auction data results.

## How Much Bond Is Required

> 5 epochs of coverage is the floor that avoids the fee. 13 epochs is the target that keeps you eligible for new stake.

To avoid triggering the mechanism, a validator's bond must cover at least 5 epochs of revenue for their stake allocation (current epoch + 4 future epochs).

To receive new stake from Marinade, the bond must cover 13 epochs (current epoch + 12 future epochs, named `idealBondEpochs = 12` in source). Maintaining 13 epochs of coverage is the recommended target and ensures a validator is both protected from the fee and eligible for additional delegation.

The practical rule: maintain a bond that covers the validator's own bid for 13 epochs across the current stake allocation. Since `expectedMaxEffBidPmpe` can never exceed the validator's own bid, this is always a safe and sufficient target.

{% hint style="info" %}
**Safety multiplier:** All required bond calculations are scaled upward by `bondObligationSafetyMult = 1.1` (a 10% safety margin) before comparison against the actual bond balance. The numbers presented in the formulas below already incorporate this multiplier. A validator targeting exactly the minimum coverage will be considered under-bonded due to the safety margin, which is why 13 epochs is the recommended operational target rather than 5.
{% endhint %}

Validators can monitor their bond coverage on the [PSR Dashboard](https://psr.marinade.finance/). The column is color-coded for quick reference (expressed in raw epochs of coverage):

<table><thead><tr><th width="122">Color</th><th width="177">Coverage</th><th>Meaning</th></tr></thead><tbody><tr><td>🔴 Red</td><td>1 epoch or below</td><td>Stake limited. At risk of Bond Risk Reduction Mechanism triggering</td></tr><tr><td>🟠 Orange</td><td>2-5 epochs</td><td>Top up immediately</td></tr><tr><td>🟡 Yellow</td><td>6-12 epochs</td><td>Stake limited. Top up to increase capacity</td></tr><tr><td>🟢 Green</td><td>13 epochs or above</td><td>Bond not limiting stake</td></tr></tbody></table>

{% hint style="info" %}
[Bond Notifications](https://docs.marinade.finance/marinade-protocol/protocol-overview/stake-auction-market/bond-notifications) alert validators when their bond coverage drops below 5 epochs, before the fee triggers. Setting up notifications is the easiest way to stay ahead of this.
{% endhint %}

{% hint style="info" %}
**On the `bondGoodForNEpochs` field:** The SAM auction output exposes a related value named `bondGoodForNEpochs`. It is shifted so that **zero marks the fee threshold**: positive means headroom, negative means the bond is under-covered. The dashboard's color coding above uses the raw number of epochs of coverage (where 5 marks the fee threshold). Both describe the same health state in different scales; use whichever is more natural for the validator's tooling. Note that runway and coverage indicators are derived from the funded amount minus outstanding claims, which include signaled withdrawals, while the fee itself is derived from the funded amount only. A validator with a pending withdrawal may therefore see a negative coverage reading without a fee being due (see the FAQ below).
{% endhint %}

## How the Fee Is Calculated

The undelegation and fee are sized together so that after the fee is paid, the remaining bond covers the remaining stake for 13 epochs.

In plain terms: the fee covers the cost of undelegating enough stake so that what remains is fully backed by the remaining bond.

For validators who want the full detail, the calculation works as follows.

**Variables:**

* **bondBalance:** The validator's funded bond amount in SOL. The trigger and fee are sized from this funded amount. Signaling a withdrawal does not reduce it, so a pending withdrawal does not by itself trigger or increase the fee. Runway and coverage indicators use a separate figure (the funded amount minus outstanding claims, which include signaled withdrawals).
* **marinadeStake:** The validator's current Marinade stake allocation in SOL.
* **expectedMaxEffBidPmpe:** The maximum effective bid in PMPE (per 1,000 SOL per epoch) expected for this validator. This can never exceed the validator's own bid. Visible in SAM auction data results.
* **onchainDistributedPmpe:** The on-chain distributed PMPE for the epoch.
* **auctionEffectiveBidPmpe:** The validator's actual effective bid in the auction.

### **Step 1: Coverage Coefficients**

The minimum coverage coefficient (5 epochs: current + 4 future):

```
minBondCoef = (onchainDistributedPmpe + 5 x expectedMaxEffBidPmpe) / 1000
```

The ideal coverage coefficient (13 epochs: current + 12 future):

```
idealBondCoef = (onchainDistributedPmpe + 13 x expectedMaxEffBidPmpe) / 1000
```

The fee coefficient (actual revenue rate per 1,000 SOL per epoch):

```
feeCoef = (onchainDistributedPmpe + auctionEffectiveBidPmpe) / 1000
```

### **Step 2: Undelegation Amount**

The amount of stake undelegated is calculated so that the remaining bond covers the remaining stake for 13 epochs after the fee is paid:

```
base = max(0, marinadeStake - bondBalance / idealBondCoef)
coef = 1 - feeCoef / idealBondCoef
undelegation = coef > 0 ? min(marinadeStake, base / coef) : marinadeStake
```

### **Step 3: Fee**

```
bondRiskFeeSol = bondRiskFeeMult x undelegation x feeCoef
```

**Invariant:** After the fee is paid, the remaining bond covers the remaining stake for 13 epochs:

```
(bondBalance - bondRiskFeeSol) / idealBondCoef >= marinadeStake - undelegation
```

### **Example**

Using approximate values from recent epochs (winning PMPE around 0.35–0.40, so `expectedMaxEffBidPmpe` ≈ **0.75** as a conservative upper bound), and assuming `bondRiskFeeMult = 1`.

Given a validator with:

* Bond balance: **180 SOL**
* Marinade stake: **50,000 SOL**
* `onchainDistributedPmpe` = 0.35, `expectedMaxEffBidPmpe` = 0.75, `auctionEffectiveBidPmpe` = 0.75

**Trigger check:** Does the bond cover the minimum 5 epochs?

* minBondCoef = (0.35 + 5 × 0.75) / 1000 = **0.0041**
* Required bond: 50,000 × 0.0041 = **205 SOL**
* 180 SOL < 205 SOL → mechanism triggers.

**Fee calculation:** Size the undelegation so that the remaining bond covers the remaining stake for 13 epochs after the fee is paid.

* idealBondCoef = (0.35 + 13 × 0.75) / 1000 = **0.0101**
* feeCoef = (0.35 + 0.75) / 1000 = **0.0011**
* base = max(0, 50,000 − 180 / 0.0101) = max(0, 50,000 − 17,822) = **32,178 SOL**
* coef = 1 − 0.0011 / 0.0101 = **0.8911**
* undelegation = min(50,000, 32,178 / 0.8911) = **≈ 36,111 SOL** (partial)
* bondRiskFeeSol = 1 × 36,111 × 0.0011 ≈ **39.7 SOL**

**Result:** Approximately **36,111 SOL** is undelegated and **≈ 40 SOL** is charged from the bond and distributed to stakers. The validator keeps **≈ 13,889 SOL** of Marinade stake, and the remaining bond (≈ 140 SOL) covers that amount for the ideal 13 epochs, restoring the invariant.

**When the bond is very small relative to stake**, the undelegation step saturates at the full stake (complete undelegation). For example, the same parameters with a 26 SOL bond and 45,000 SOL stake produce `undelegation = 45,000 SOL` (complete) and `bondRiskFeeSol ≈ 49.5 × bondRiskFeeMult SOL`.

### Configuration Reference

<table><thead><tr><th width="236">Parameter</th><th width="120">Production</th><th>Description</th></tr></thead><tbody><tr><td><code>minBondEpochs</code></td><td>4</td><td>Minimum coverage in future epochs (5 epochs total including the current epoch). Falling below triggers the fee.</td></tr><tr><td><code>idealBondEpochs</code></td><td>12</td><td>Target coverage in future epochs (13 epochs total). Maintaining this keeps the validator eligible for new stake.</td></tr><tr><td><code>bondObligationSafetyMult</code></td><td>1.1</td><td>Safety multiplier applied to all bond obligation calculations (10% margin).</td></tr><tr><td><code>minBondBalanceSol</code></td><td>7 SOL</td><td>Minimum bond balance before complete undelegation occurs.</td></tr><tr><td><code>bondRiskFeeMult</code></td><td>varies</td><td>Multiplier on the fee calculation. Adjustable by governance.</td></tr></tbody></table>

### Frequently Asked Questions

#### Q: Does submitting a bond withdrawal request trigger the Bond Risk Reduction Mechanism fee?&#x20;

A: No. The fee is derived only from a validator's funded bond amount, and signaling a withdrawal does not reduce that amount, so a withdrawal request on its own cannot trigger a charge. The runway and coverage indicators are calculated differently, from the funded amount minus outstanding claims (which include signaled withdrawals), so those readings will move when a withdrawal is signaled even though the fee will not.


# Bond Notifications

How validators are notified of bond-related events including underfunding, auction status changes, and announcements.

{% hint style="info" %}
**TL;DR:** Subscribe via Telegram, email, or the CLI to get alerted on bond underfunding, auction status changes, and announcements. Critical alerts fire below 2 epochs of coverage; warnings below 10. Setting this up is the easiest way to stay ahead of the Bond Risk Reduction Mechanism.
{% endhint %}

## Overview

The notification system monitors the state of validator bonds and alerts the bond authority when something important changes. This page covers how the system works, the notification types, and how to subscribe.

## How Notifications Work

The processing pipeline works as follows:

1. **State monitoring:** The system periodically checks the state of all bonds participating in the SAM Auction (bond balance, auction status, eligibility, and so on).
2. **Change detection:** When a relevant change is detected for a bond (e.g., the bond becomes underfunded, the validator exits the auction), an event is generated.
3. **Notification delivery:** The event is evaluated, prioritized, and delivered through the validator's subscribed channels (Telegram, email, or the CLI notifications view).

Validators only receive notifications when something **changes**. The system does not repeatedly alert about a persistent condition. For ongoing issues (e.g., underfunding), re-alerts are sent at most once per 24 hours and only if the condition changed significantly.

### Notification Types

* **Bond underfunded:** The bond's SOL balance is insufficient to cover SAM Auction costs for the delegated stake. The system tracks how many epochs the current balance can sustain.
  * A **critical** alert fires when coverage drops below 2 epochs, and a **warning** when it drops below 10 epochs.
  * Only deficits ≥ 0.5 SOL trigger a notification.
  * The expected cost calculation now includes the Activating Stake Fee when applicable. Validators receiving new stake will see this reflected in the projected coverage. See the Activating Stake Fee page for the fee mechanics.
  * See also the Bond Risk Reduction Mechanism for what happens when coverage falls below the minimum.
* **Auction exited / entered:** The validator left or joined the SAM Auction. Exiting is **critical**. Act quickly to avoid losing delegated stake.
* **Cap constraint changed:** The binding constraint limiting the validator's delegated stake changed. Only the `BOND` cap type (bond size is the limiting factor) triggers a notification. Other cap types (e.g., country, ASO) are system-managed and suppressed.
* **Bond removed:** Bond is no longer visible in on-chain data. This is a **critical** alert. It may indicate accidental bond closure. All delegated stake will be lost if not resolved.
* **Bond balance changed:** SOL balance on the bond account changed.
* **SAM eligibility changed:** Validator SAM eligibility toggled (e.g., due to delinquency). Ineligibility means Marinade will not delegate to the validator even if the bid is competitive. See Eligibility Criteria.
* **Announcements:** Broadcast messages from Marinade to all validators.

{% hint style="warning" %}
The notification system is currently in beta. Thresholds, priority levels, and notification frequency may change during testing.
{% endhint %}

***

## Subscribing to Notifications

### **Requirements**

* The `validator-bonds` CLI. Install it via [npm](https://www.npmjs.com/package/@marinade.finance/validator-bonds-cli): `npm install -g @marinade.finance/validator-bonds-cli`
* The **bond authority keypair** or **validator identity keypair** (file-based keypair or Ledger hardware wallet).

#### **Subscribe via Telegram**

```bash
validator-bonds subscribe <BOND_OR_VOTE_ACCOUNT> \
  --type telegram \
  --address @YourTelegramHandle \
  --authority /path/to/authority-keypair.json
```

The CLI signs an off-chain message with the authority keypair to prove bond ownership. The browser then opens a Telegram deep link. Press **Start** in the bot to activate. Notifications are not delivered until confirmation in Telegram. If the browser does not open automatically, copy the link from the CLI output manually.

{% hint style="info" %}
Telegram activation is required **every time** a subscription is created or re-created, even for the same bond. Always go through the CLI first.
{% endhint %}

#### **Subscribe via Email**

```bash
validator-bonds subscribe <BOND_OR_VOTE_ACCOUNT> \
  --type email \
  --address your@email.com \
  --authority /path/to/authority-keypair.json
```

Unlike Telegram, email subscriptions are active immediately. No additional confirmation step is needed.

### **Subscription Scope**

A subscription currently covers **all notification types** for the given bond. Granular subscription modes (e.g., subscribing only to critical alerts or specific event types) are not available at this time and may be added in the future.

#### Viewing Your Subscriptions

To see your active subscriptions for a bond:

```bash
validator-bonds subscriptions <BOND_OR_VOTE_ACCOUNT> \
  --authority /path/to/authority-keypair.json
```

Use `-f json` or `-f yaml` for machine-readable output.

## Unsubscribing

#### **Unsubscribe a specific channel address:**

```bash
validator-bonds unsubscribe <BOND_OR_VOTE_ACCOUNT> \
  --type telegram \
  --address @YourTelegramHandle \
  --authority /path/to/authority-keypair.json
```

#### **Unsubscribe All Subscriptions of a Given Type**

Omit `--address`:

```bash
validator-bonds unsubscribe <BOND_OR_VOTE_ACCOUNT> \
  --type telegram \
  --authority /path/to/authority-keypair.json
```

{% hint style="info" %}
Unsubscribing requires signing with the bond authority or validator identity keypair, the same as subscribing.
{% endhint %}

## Viewing Notifications

```bash
validator-bonds show-notifications <BOND_OR_VOTE_ACCOUNT>
```

Notifications have a relevance window (typically 2 to 5 days depending on the event type). Older notifications will no longer appear in this view.

To view broadcast announcements from Marinade:

```bash
validator-bonds show-notifications
```

### Quick Reference

<table><thead><tr><th width="158">Action</th><th>Command</th></tr></thead><tbody><tr><td>Subscribe (Telegram)</td><td><code>validator-bonds subscribe &#x3C;BOND> --type telegram --address @handle --authority keypair.json</code></td></tr><tr><td>Subscribe (Email)</td><td><code>validator-bonds subscribe &#x3C;BOND> --type email --address you@email.com --authority keypair.json</code></td></tr><tr><td>List subscriptions</td><td><code>validator-bonds subscriptions &#x3C;BOND> --authority keypair.json</code></td></tr><tr><td>Unsubscribe specific</td><td><code>validator-bonds unsubscribe &#x3C;BOND> --type telegram --address @handle --authority keypair.json</code></td></tr><tr><td>Unsubscribe all of type</td><td><code>validator-bonds unsubscribe &#x3C;BOND> --type telegram --authority keypair.json</code></td></tr><tr><td>View notifications</td><td><code>validator-bonds show-notifications &#x3C;BOND></code></td></tr><tr><td>View announcements</td><td><code>validator-bonds show-notifications</code></td></tr></tbody></table>

`<BOND>` can be either a **bond account address** or a **vote account address**.

### Ledger Hardware Wallet Support

All subscribe and unsubscribe commands support Ledger hardware wallets. Pass the Ledger as the  `--authority` option and the CLI will prompt to confirm the off-chain message signing on the device.


# SAM Resources

Dashboards, repositories, APIs, and technical reference for SAM participants.

{% hint style="info" %}
**TL;DR:** One-stop reference page. Dashboards, repositories, audits, key contract addresses, the parameters at a glance for production config, and the glossary of SAM terms.
{% endhint %}

## Overview

A single landing page for the tools, dashboards, repositories, and reference data validators and stakers use to interact with the Stake Auction Marketplace. Bookmark this page for quick navigation.

### Dashboards

Web interfaces for monitoring SAM and validator activity.

* [**PSR (Protected Staking Rewards) dashboard**](https://psr.marinade.finance/)**:** Real-time view of validator bond status, eligibility, simulated auction positioning, and protected events. Refreshes every few hours.
* [**Marinade validator dashboard**](https://app.marinade.finance/network/validators/)**:** Per-validator view of Marinade-delegated stake, bond status, and historical performance.
* [**Marinade stats**](https://stats.marinade.finance/)**:** Aggregate protocol statistics across SAM, Native, Liquid, and Select.

### CLI and SDKs

Tools for programmatic interaction with the validator bonds program and Marinade APIs.

* [**Validator bonds CLI (npm)**](https://www.npmjs.com/package/@marinade.finance/validator-bonds-cli)**:** Primary tool for creating, funding, configuring, and managing bonds. Supports Ledger hardware wallets.
* [**Validator bonds CLI (GitHub)**](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli#validator-bonds-cli)**:** Full command reference and source.
* [**Validator bonds CLI Institutional**](https://www.npmjs.com/package/@marinade.finance/validator-bonds-cli-institutional)**:** Streamlined CLI for institutional users using token-based bond ownership.
* [**Marinade TS/JS SDK**](https://docs.marinade.finance/developers/marinade-ts-js-sdk)**:** TypeScript SDK for integrating with Marinade programmatically.
* [**Marinade Rust SDK**](https://docs.marinade.finance/developers/marinade-rust-sdk)**:** Rust SDK for integrating with Marinade programmatically.

### Repositories

Source code for the SAM pipeline and supporting infrastructure.

* [**validator-bonds**](https://github.com/marinade-finance/validator-bonds)**:** Monorepository for the on-chain bonds program, CLI, SDK, and supporting tools.
* [**ds-sam**](https://github.com/marinade-finance/ds-sam)**:** PSR and SAM scoring logic.
* [**ds-sam-pipeline**](https://github.com/marinade-finance/ds-sam-pipeline)**:** Pipeline orchestration for PSR and SAM scoring runs. Each epoch's auction inputs and outputs are committed under `auctions/<epoch>/`.
* [**psr-dashboard**](https://github.com/marinade-finance/psr-dashboard)**:** Source for the PSR dashboard.

### APIs

Data endpoints for monitoring and integration.

* [**Delegation Strategy API**](https://validators-api.marinade.finance/docs)**:** Public API for validator metadata, geolocation, scoring, and SAM-relevant performance data.
* [**Snapshots API**](https://snapshots-api.marinade.finance/docs)**:** Per-epoch snapshots of stake, MNDE Enhanced Stake support, and validator state.
* [**Marinade Stats API**](https://api.marinade.finance/docs)**:** Aggregate protocol statistics.
* [**Bonds API**](https://github.com/marinade-finance/validator-bonds#bonds-api)**:** Current state of bond accounts. Updated once per hour.

### Data Sources

Raw data published per epoch.

* [**ds-sam-pipeline auctions folder**](https://github.com/marinade-finance/ds-sam-pipeline/tree/main/auctions)**:** Per-epoch auction inputs (`inputs/`) and outputs. Includes the blacklist CSV, validator metadata, and final stake allocations.
* [**Google Cloud Storage bucket**](https://console.cloud.google.com/storage/browser/marinade-validator-bonds-mainnet/)**:** Settlement data, PSR reports, and historical pipeline outputs. Public access (Google login required).
* [**Discord #psr-feed channel**](https://discord.gg/marinade)**:** Per-epoch PSR results, validators with bond charges, and other operational notifications.

#### Technical Reference

Addresses, identifiers, and operational parameters.

* **Validator Bonds program address:** `vBoNdEvzMrSai7is21XgVYik65mqtaKXuSdMBJ1xkW4`
* **Marinade Validator Bonds config account:** `vbMaRfmTCg92HWGzmd53APkMNpPnGVGZTUHwUJQkXAU`
* **Bonds Select config address:** `VbinSTyUEC8JXtzFteC4ruKSfs6dkQUUcY6wB1oJyjE`
* **Validator Bonds Stake Account Withdrawer authority:** `8CsAFqTh75jtiYGjTXxCUbWEurQcupNknuYTiaZPhzz3`
* **Native Staking Select Staker authority:** `STNi1NHDUi6Hvibvonawgze8fM83PFLeJhuGMEXyGps`
* **Geolocation provider:** ipwhois. Validator data center identification refreshed every 24 hours.
* **Pipeline scoring cadence:** Once per epoch. Stake rebalancing actions are dispatched at epoch boundary.
* **Solana epoch duration:** About a day and a half.

#### Audits

Third-party security reviews.

* [**Validator bonds program audit (Neodyme)**](https://github.com/marinade-finance/validator-bonds/blob/main/resources/audit/v2.1.0-neodyme-audit-validator-bonds.pdf)**:** Audit report for the on-chain bonds program.
* [**Marinade audits index**](https://docs.marinade.finance/marinade-protocol/security/audits)**:** Full list of security audits across Marinade products.

#### Parameters at a Glance

Operational parameters governing SAM auction mechanics, bond requirements, eligibility, and notifications. Values reflect production configuration at the time of writing.

{% hint style="info" %}
**Source of truth:** Live values are maintained in the following sources. If the values below appear stale, check the source files directly.

* **Auction parameters:** [`ds-sam-pipeline/auction-config.json`](https://github.com/marinade-finance/ds-sam-pipeline/blob/main/auction-config.json)
* **Bond program parameters:** [`vbMaRfmTCg92HWGzmd53APkMNpPnGVGZTUHwUJQkXAU`](https://solscan.io/account/vbMaRfmTCg92HWGzmd53APkMNpPnGVGZTUHwUJQkXAU) (on-chain config account)
* **Pipeline scoring logic:** [`ds-sam`](https://github.com/marinade-finance/ds-sam) repository
  {% endhint %}

**Auction and Decentralization**

<table><thead><tr><th>Parameter</th><th width="143">Value</th><th>Description</th></tr></thead><tbody><tr><td>Per-validator TVL cap</td><td>15%</td><td>Maximum portion of Marinade TVL any single validator can hold. Introduced in <a href="https://forum.marinade.finance/t/mip-19-improving-sam-auction-stake-priority-bond-risk-reduction-mechanism-higher-validator-caps/1969">MIP-19</a>, live from epoch 946. See Stake Distribution.</td></tr><tr><td>ASO concentration cap</td><td>30%</td><td>Maximum portion of Solana's total network stake that can be allocated to validators in a single ASO.</td></tr><tr><td>Country concentration cap</td><td>40%</td><td>Maximum portion of Solana's total network stake that can be allocated to validators in a single country.</td></tr><tr><td>Rebalance baseline</td><td>~1% per epoch</td><td>Approximate share of Marinade's total TVL rebalanced under normal conditions. Configurable in the pipeline; subject to adjustment.</td></tr><tr><td>Effective inflation commission limit</td><td>7%</td><td>Maximum effective commission to Marinade stakers before eligibility is lost. See Eligibility Criteria.</td></tr></tbody></table>

**Stake Matching**

<table><thead><tr><th>Parameter</th><th width="198">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>unprotectedDelegatedStakeDec</code></td><td>0.1 (10%)</td><td>Match rate on non-SFDP external stake.</td></tr><tr><td><code>unprotectedFoundationStakeDec</code></td><td>0.3 (30%)</td><td>Match rate on SFDP / Solana Foundation stake.</td></tr><tr><td><code>minUnprotectedStakeToDelegateSol</code></td><td>1,000 SOL</td><td>Minimum calculated match. Matches below this collapse to zero.</td></tr><tr><td>Per-validator matching cap</td><td>0.4% of Marinade TVL</td><td>Maximum matched stake per validator. Separate from the 15% per-validator direct SAM cap. See Stake Matching.</td></tr></tbody></table>

**maxStakeWanted**

<table><thead><tr><th width="176">Parameter</th><th width="124">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>minMaxStakeWanted</code></td><td>10,000 SOL</td><td>Floor on the effective cap. Setting <code>maxStakeWanted</code> below this has no effect. See <code>maxStakeWanted</code> Parameter.</td></tr></tbody></table>

**Bid Reduction Penalty**

<table><thead><tr><th width="210">Parameter</th><th width="102">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>historyEpochs</code></td><td>3</td><td>Lookback window in epochs used to compute the historical floor.</td></tr><tr><td><code>permittedBidDeviation</code></td><td>0.01 (1%)</td><td>Buffer below the floor in which bid reductions do not incur a penalty. See Bid Reduction Penalty.</td></tr></tbody></table>

**Bond Risk Reduction Mechanism**

<table><thead><tr><th width="231">Parameter</th><th width="204">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>minBondEpochs</code></td><td>4 future epochs</td><td>Minimum bond coverage required to avoid the fee (5 epochs total including the current epoch).</td></tr><tr><td><code>idealBondEpochs</code></td><td>12 future epochs</td><td>Target bond coverage to remain eligible for new stake (13 epochs total).</td></tr><tr><td><code>bondObligationSafetyMult</code></td><td>1.1</td><td>Safety multiplier (10% margin) applied to all bond obligation calculations.</td></tr><tr><td><code>minBondBalanceSol</code></td><td>7 SOL</td><td>Minimum bond balance before complete undelegation occurs.</td></tr><tr><td><code>bondRiskFeeMult</code></td><td>Governance-adjustable</td><td>Multiplier on the fee calculation. Subject to change by governance. See Bond Risk Reduction Mechanism.</td></tr></tbody></table>

**Bonds Settlements**

<table><thead><tr><th width="224">Parameter</th><th width="106">Value</th><th>Description</th></tr></thead><tbody><tr><td><code>epochsToClaimSettlement</code></td><td>3 epochs</td><td>Claim window for validators to dispute or claim a settlement before it finalizes.</td></tr></tbody></table>

**Bond Notifications**

<table><thead><tr><th width="214">Parameter</th><th width="214">Value</th><th>Description</th></tr></thead><tbody><tr><td>Underfunding critical threshold</td><td>&#x3C; 2 epochs of coverage</td><td>Triggers a <strong>critical</strong> alert.</td></tr><tr><td>Underfunding warning threshold</td><td>&#x3C; 10 epochs of coverage</td><td>Triggers a <strong>warning</strong> alert.</td></tr><tr><td>Minimum deficit to notify</td><td>0.5 SOL</td><td>Deficits below this threshold do not trigger a notification.</td></tr><tr><td>Re-alert cadence</td><td>Max once per 24 hours</td><td>Notifications for persistent conditions only refire if the condition changes significantly. See Bond Notifications.</td></tr></tbody></table>

**Eligibility and Blacklist**

<table><thead><tr><th width="197">Parameter</th><th width="256">Value</th><th>Description</th></tr></thead><tbody><tr><td>Uptime threshold</td><td>80% of expected blocks produced</td><td>Validators below this threshold lose eligibility.</td></tr><tr><td>MEV sandwich attack threshold</td><td>30% of blocks produced</td><td>Validators above this threshold are blacklisted. See Blacklist Policy.</td></tr><tr><td>Bond minimum (for downtime)</td><td>1 SOL per 10,000 SOL of stake</td><td>Covers one epoch of PSR-style downtime.</td></tr></tbody></table>

**Timing and Cadence**

<table><thead><tr><th width="231">Parameter</th><th width="152">Value</th><th>Description</th></tr></thead><tbody><tr><td>Solana epoch duration</td><td>About a day and a half</td><td>Native time unit on Solana. All SAM mechanisms operate on per-epoch cycles.</td></tr><tr><td>ASO data refresh cadence</td><td>24 hours</td><td>Geolocation data is refreshed daily via the ipwhois provider.</td></tr><tr><td>Bonds API update cadence</td><td>1 hour</td><td>The Bonds API refreshes once per hour. Use the CLI for real-time bond state.</td></tr><tr><td>PSR dashboard refresh</td><td>Every few hours</td><td>Web dashboards refresh on a delay. Always cross-check with the CLI for real-time values.</td></tr><tr><td>Pipeline scoring cadence</td><td>Once per epoch</td><td>Stake rebalancing actions are dispatched at the epoch boundary.</td></tr></tbody></table>

#### Glossary

Definitions for terms used across SAM documentation. Includes acronyms, units, code-name synonyms, and shorthand. Alphabetical.

**Units at a Glance**

A quick reference for the unit conventions used across the CLI, dashboards, and configuration files. Mixing these up is the most common cause of misconfiguration.

| Concept                                                                                 | Unit                           | Example                                                |
| --------------------------------------------------------------------------------------- | ------------------------------ | ------------------------------------------------------ |
| Bond balance and settlement amounts                                                     | SOL                            | 25 SOL                                                 |
| Lamports (Solana base unit)                                                             | 1 SOL = 1,000,000,000 lamports | 25 SOL = 25,000,000,000 lamports                       |
| CPMPE (`--cpmpe`)                                                                       | lamports                       | 100,000,000 lamports = 0.1 SOL per 1,000 SOL per epoch |
| `--max-stake-wanted`                                                                    | lamports                       | 25,000 SOL = 25,000,000,000,000 lamports               |
| Dynamic commission (`--inflation-commission`, `--mev-commission`, `--block-commission`) | basis points (bps)             | 10,000 bps = 100%                                      |
| PMPE and CPMPE display on dashboards                                                    | SOL per 1,000 SOL per epoch    | 0.1                                                    |

**Terms**

* **Activating stake:** Stake that Marinade has just delegated to a validator in the current epoch but is not yet earning rewards. Appears as activating in one epoch's snapshot, then transitions to active in the next. Triggers the Activating Stake Fee.
* **Active stake (Marinade):** The portion of a validator's total stake that originated from Marinade and is currently earning rewards (not activating or deactivating). Bids in SAM are charged against active Marinade stake each epoch.
* **`auctionEffectiveBidPmpe`:** Source-code name for the Effective Bid. Used in auction outputs and pipeline data. See also `effBid`.
* **ASO (Autonomous System Organization):** The data center or hosting provider a validator runs on, identified by ASN. Marinade enforces a 30% cap on ASO concentration in Stake Distribution. ASO data is refreshed every 24 hours via the ipwhois geolocation provider.
* **Activating Stake Fee:** One-time fee charged when new stake activates on a validator. Scaled by how far the validator bid above the auction clearing rate. See Activating Stake Fee.
* **Bid Reduction Penalty:** Penalty charged when a validator lowers their static bid (`bidPmpe`) after winning stake. Internal name `bidTooLowPenalty`. See Bid Reduction Penalty.
* **bidPmpe:** The validator's configured static bid in PMPE form. The CLI accepts this value in lamports as `--cpmpe`.
* **Bond:** On-chain account collateralizing a validator's participation in SAM. Funded in SOL. Covers obligations like PSR settlements, auction bid costs, and downtime protection. Managed via the [validator bonds CLI](https://github.com/marinade-finance/validator-bonds/tree/main/packages/validator-bonds-cli).
* **`bondGoodForNEpochs`:** Field exposed in SAM auction output indicating how many epochs of revenue the validator's bond can cover. Shifted so that zero marks the fee threshold for the Bond Risk Reduction Mechanism: positive means headroom, negative means a fee is due this epoch.
* **`bondObligationPmpe`:** Total per-1,000-SOL-per-epoch obligation a validator must pay from their bond. Includes static bid, block rewards, and inflation/MEV commission difference.
* **`bondObligationSafetyMult`:** Multiplier (1.1 in production) applied to all bond obligation calculations as a 10% safety margin before comparison against the actual bond balance.
* **Bond Risk Reduction Mechanism:** Mechanism that undelegates stake and charges a fee from the bond when bond coverage falls below the minimum threshold. See Bond Risk Reduction Mechanism.
* **bps (basis points):** Unit for dynamic commission parameters. 10,000 bps = 100%. A value of 0 bps = 0%. See Dynamic Bids.
* **Claimable bond:** The portion of a validator's bond not committed to pending withdrawals. Only the claimable portion counts toward bond coverage calculations.
* **CPMPE (cost per 1,000 SOL of delegated stake per epoch):** A fixed lamport cost a validator commits to pay per 1,000 SOL of delegated stake, per epoch. Set in the CLI as `--cpmpe`. The static portion of a SAM bid.
* **Dynamic commission:** Commission parameters set in the validator bonds CLI (`--inflation-commission`, `--mev-commission`, `--block-commission`) in basis points. Determines how rewards are split between the validator and stakers. See Dynamic Bids.
* **`effBid` / Effective Bid:** The realized yield for an epoch, in lamports per 1,000 SOL, set by the auction's last-price model. Typically lower than the validator's configured bid. Source-code name `auctionEffectiveBidPmpe`. See Bonds Settlements.
* **`effParticipatingBidPmpe`:** The minimum bid required to remain in the winning set this epoch. Calculated from the auction-winning total pmpe minus the validator's post-commission on-chain rewards (`max(0, winningTotalPmpe - onchainDistributedPmpe)`). Does not depend on the validator's own static bid. Used as the floor in the Bid Reduction Penalty calculation.
* **`expectedMaxEffBidPmpe`:** The maximum Effective Bid expected for a validator. Used by the Bond Risk Reduction Mechanism to size required bond coverage. Can never exceed the validator's own bid.
* **External stake:** Stake delegated to a validator that did not originate from Marinade and does not come from the validator's own self-stake (retail, SFDP, other LSTs, etc.). See Stake Matching.
* **`idealBondEpochs`:** Source-config parameter (12 in production) for the target bond coverage in future epochs. Combined with the current epoch this represents the recommended 13-epoch operational target.
* **Lamports:** Base unit of SOL. 1 SOL = 1,000,000,000 lamports. CLI flags such as `--cpmpe` and `--max-stake-wanted` take values in lamports.
* **Last-price auction:** The auction model used by SAM. Validators are ranked by `max_yield` and stake is allocated top-down. The Effective Bid for the epoch is set to the `max_yield` of the last validator on the winning list, and all winners are charged at that lower rate.
* **`max_yield`:** The maximum yield a validator offers to stakers at a given stake level. Combines the validator's commission and any bid placed through SAM. Used as the ranking metric in the auction. Source-code synonym: `totalPmpe`.
* **`maxStakeWanted`:** Per-validator cap on incoming Marinade stake, configured via the bonds CLI in lamports. Subject to a 10,000 SOL minimum floor (`minMaxStakeWanted`). See `maxStakeWanted` Parameter.
* **MEV (Maximal Extractable Value):** Value extractable through transaction ordering, inclusion, or exclusion within blocks. One of three reward categories (inflation, MEV, block rewards) configurable in dynamic commission.
* **MIP (Marinade Improvement Proposal):** Governance proposals for protocol changes. Discussed and ratified on the [Marinade Forum](https://forum.marinade.finance/). Notable: [MIP-19](https://forum.marinade.finance/t/mip-19-improving-sam-auction-stake-priority-bond-risk-reduction-mechanism-higher-validator-caps/1969) introduced the 15% per-validator cap and the Bond Risk Reduction Mechanism.
* **`minBondEpochs`:** Source-config parameter (4 in production) for the minimum bond coverage in future epochs. Combined with the current epoch this represents the 5-epoch fee threshold.
* **`minMaxStakeWanted`:** Source-config parameter (10,000 SOL in production) setting the floor on the per-validator cap parameter. See `maxStakeWanted` Parameter.
* **`onchainDistributedPmpe`:** The on-chain distributed PMPE for an epoch, used in Bond Risk Reduction Mechanism calculations.
* **On-chain commission:** The validator's commission settings recorded directly on the Solana blockchain (separate from Marinade's bond-level commission). Acts as a floor: dynamic commission can share more with stakers than the on-chain commission implies, but cannot share less.
* **Overstaked:** A validator whose SAM target (the stake they would win in this epoch's auction) is lower than their current SAM active stake. The excess is redelegated to other validators.
* **PMPE (per 1,000 SOL per epoch):** Unit for yield and bid measurements. Smaller values when expressed in lamports; larger values when expressed in SOL.
* **PSR (Protected Staking Rewards):** Marinade's framework for protecting staker rewards via validator-funded bonds. The bond covers obligations like downtime, sandwich attacks, and other PSR-triggering events. See [PSR documentation](https://docs.marinade.finance/marinade-protocol/protocol-overview/protected-staking-rewards).
* **realized\_yield:** The yield actually delivered to stakers each epoch, equal to the Effective Bid (or `auctionEffectiveBidPmpe`). All validators on the winning list deliver this rate, regardless of their configured `max_yield`.
* **SAM (Stake Auction Marketplace):** Marinade's auction-based delegation system. Validators bid for Marinade stake; the auction allocates stake based on `max_yield` rankings subject to eligibility and decentralization constraints.
* **SFDP (Solana Foundation Delegation Program):** Solana Foundation program that delegates stake to qualifying validators. Counts as external stake for Stake Matching. PSR bond counts toward the SFDP self-stake requirement.
* **Slashable bond:** The portion of a validator's bond exposed to penalties from PSR-triggering events (downtime, sandwich attacks). Required for direct SAM stake. Not required for matched stake.
* **Solana epoch:** The native time unit on Solana, about a day and a half in duration. All SAM mechanisms operate on per-epoch cycles.
* **Static bid:** The CPMPE component of a validator's auction bid. Fixed cost per 1,000 SOL of stake per epoch. Configured in lamports via `--cpmpe`.
* **`totalPmpe`:** Source-code name for `max_yield`. Used in auction outputs and pipeline data.
* **Unprotected stake:** Source-code term for matched stake. The two refer to the same thing: stake matched by Marinade as additional delegation without slashable bond coverage. Field name `unprotectedStakeSol`. See Stake Matching.
* **`unprotectedDelegatedStakeDec` / `unprotectedFoundationStakeDec`:** Configuration parameters for Stake Matching. 0.1 (10%) and 0.3 (30%) respectively in production. Set the match rate on non-SFDP and SFDP stake.

#### Useful Reads

Background and educational content for SAM participants.

* [**Marinade blog: Dynamic Commission introduction**](https://marinade.finance/blog/more-control-better-yields-introducing-dynamic-commission-for-validators)**:** Background on how dynamic commission bidding was rolled out.
* [**Marinade blog: PSR and Delegation Strategy updates**](https://marinade.finance/blog/psr-and-delegation-strategy-updates/)**:** Original PSR launch context and delegation strategy reasoning.
* [**Solana Foundation Delegation Program (SFDP) self-stake criteria**](https://solana.org/delegation-criteria#self-stake)**:** SFDP requirements that PSR bond contributes toward.


# Staking Rewards Report

Learn how to use the Staking Rewards Report to view and export your Marinade native staking rewards by epoch, and understand what the data represents.

## Overview

The Staking Rewards Report is a self-service tool that provides a summary of staking rewards earned through Marinade's **native staking**.

It is designed to help users better understand rewards earned over time by presenting staking activity in a structured, historical view.

The report is intended for **reference and transparency**, and reflects indexed staking reward data rather than wallet balance changes.

{% hint style="warning" %}
**Not covered: Marinade Recipes / Customized Rewards.** Although Recipes use native staking, the report only tracks rewards paid in SOL. If your position pays out in another token (USDG, USDC, cbBTC, etc.), those payouts are airdropped to your wallet each epoch and no report is generated for them. Track them in your wallet's transaction history or on a Solana explorer such as [Solscan](https://solscan.io). See Marinade Recipes for details.
{% endhint %}

***

### What the Staking Rewards Report Shows

The report displays staking-related rewards and activity from Marinade native staking in a filterable view.

You can customize the report using the following options:

**Type**

<div align="center"><figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FxcVE63PWzNSC3US4ahGD%2Fimage.png?alt=media&#x26;token=11f9d88a-1a5c-437b-a45f-d4e61d811b34" alt=""><figcaption></figcaption></figure></div>

* Inflation Reward
* MEV Reward
* Marinade Settlement
* Deposit
* Withdrawal

**Date Range**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FR0x8AITAUDYGUGhteJVh%2Fimage.png?alt=media&#x26;token=429c0e45-fd0a-4206-a17c-7205c2434bdf" alt=""><figcaption></figcaption></figure>

* Current month, Last month
* This year, Last year
* All time, Custom range

**Group By**

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F8E9jxQ3hISC3jSWpQgJu%2Fimage.png?alt=media&#x26;token=a70a4160-8fb4-4ca0-9b0d-3553d527a0e5" alt=""><figcaption></figcaption></figure>

* Day, Week, Month
* Epoch, Year

All values shown represent **earned rewards**, displayed in both **SOL** and **USD** (where applicable), and are aggregated based on the selected grouping.

***

### What's Included vs. Excluded

**Included**

* SOL-denominated rewards earned from Marinade **native staking** with SOL rewards, and existing Marinade Select positions
* Earned reward amounts displayed in **SOL** and **USD**
* Aggregated staking reward records based on the selected grouping

**Not Included**

* Wallet transfers unrelated to staking
* Liquid staking (mSOL) rewards
* The amount of SOL staked for each reward entry
* Validator-level performance or commission breakdowns
* Intraday or real-time reward accrual
* Marinade Recipes (Customized Rewards) payouts, meaning rewards paid in a non-SOL token such as USDG, USDC, or cbBTC. These are airdropped to your wallet each epoch; no report is generated for them.

***

### How to Request Your Staking Rewards Report

**Step 1: Connect Your Wallet**

1. Go to [**https://app.marinade.finance/**](https://app.marinade.finance/) and connect your wallet.
2. Open the **Portfolio** tab.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FzG0JtphjCE1YFweG2dky%2Fimage.png?alt=media&#x26;token=5a40f3fe-41ba-4a50-a656-8f6fb69cc537" alt=""><figcaption></figcaption></figure>

Under **Positions**, you should see any staking positions associated with the connected wallet. This may include stake accounts not created directly through Marinade.

If no positions are found, you may see:

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F0p8NM45FY5zDVvCf44QU%2Fimage.png?alt=media&#x26;token=c627453e-ffdb-487d-a3f1-7530632b5957" alt=""><figcaption></figcaption></figure>

> *"It looks like you don't have any positions yet. You can start staking with Marinade and earn rewards!"*

**Notes:**

* Only positions associated with the **connected wallet** can be displayed
* Assets deposited into DeFi protocols or not held directly in the wallet may not appear
* This applies to other liquid staking tokens (LSTs) as well

**Step 2: Request Your Rewards Data**

1. Open the **Rewards** tab.
2. If this is your first time using the tool, you'll see an option to **Request data**.
3. Click **Request data**.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FgREU8CptXIz5N7ZQv7sb%2Fimage.png?alt=media&#x26;token=191c18dd-a330-4da4-b3e2-039e7447d373" alt=""><figcaption></figcaption></figure>

You'll be prompted to optionally enter an email address with the message:

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FCbxWgrx7Q9N2ieaxtv5w%2Fimage.png?alt=media&#x26;token=15da8902-be7d-4a71-b605-4e750e5634e3" alt=""><figcaption></figcaption></figure>

> *"Data are usually generated within 24 hours. Enter your email, and we'll notify you as soon as it's ready."*

Providing an email is optional but recommended.

{% hint style="warning" %}
**Security note:** We only send notifications from **@marinade.finance**.
{% endhint %}

4. Click **Confirm**.\
   Your request will typically complete within **24 hours**.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FvSX3gWVscs829Rdi3oFM%2Fimage.png?alt=media&#x26;token=82d139d3-28c7-455a-967d-83ecc7d5f211" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FLDBQXfWJc0pRMQO0Dxd7%2Fimage.png?alt=media&#x26;token=62236138-58c1-4709-96f3-0f9187a88ee3" alt=""><figcaption></figcaption></figure>

**Step 3: View Your Report**

Once ready:

* You'll receive an email notification if you provided an address, or
* You can reconnect your wallet and return to the **Rewards** tab

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FFDKEXJfnZhtkLkdcxTRz%2Fimage.png?alt=media&#x26;token=7fb5faca-14c4-4ab3-92a7-b3b54d8171e9" alt=""><figcaption></figcaption></figure>

From there, you can:

* View and sort rewards
* Group data by your preferred timeframe
* Export the report if needed

If you see **"No rewards found"**, it means no eligible records were found for the connected wallet.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FnvfoDBKQRiXSPVxtOwNr%2Fimage.png?alt=media&#x26;token=46ba911e-5f8a-40ba-ba86-171f72299287" alt=""><figcaption></figcaption></figure>

**Currently supported:** Marinade Native staking with SOL rewards, and existing Marinade Select positions.\
**Not supported:** Marinade Recipes / Customized Rewards (non-SOL reward tokens) and Marinade Liquid (mSOL).

***

### Data Refresh & Updates

The Staking Rewards Report does not automatically refresh every epoch.

The report shows the most recently indexed data, along with a timestamp indicating when it was last updated. To fetch the latest data, click **"Request latest data"** in the report. After requesting, reload the Marinade app in your browser (Ctrl+R, or Cmd+R on Mac) and reopen the **Rewards** tab. The reload shows the current state. Check the timestamp: if it has not moved, the refresh is still running and can take up to 24 hours.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FS0EGrRNC3QRt0Y0b3yO1%2Fimage.png?alt=media&#x26;token=39e24e9a-4958-4a39-aef1-3f1e696225d7" alt=""><figcaption></figcaption></figure>

After requesting a refresh:

* Staking activity is re-indexed
* The process typically takes **up to 24 hours**
* **Request latest data** is greyed out for about **4 hours** after a request, so you cannot queue another refresh straight away
* Your existing report stays on screen while the new one is prepared, so you can keep using the previous figures until the refresh lands
* Updated data will appear once indexing completes

Providing an email allows us to notify you when the report is ready.

***

### Understanding Small or Zero Rewards

Seeing very small, infrequent, or zero rewards for a given period is usually expected.

Common reasons include:

* Your stake was activated partway through an epoch
* Rewards are still pending finalization or indexing
* Rewards are aggregated by epoch rather than continuously
* Solana staking rewards accrue per epoch (about **a day and a half**), so when grouping by **Day**, some days will show no rewards at all
* Small reward amounts may round down when displayed
* Displayed USD values are estimates based on historical pricing and may differ slightly due to rounding

***

### Exporting Your Report

The Staking Rewards Report can be exported for offline review.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FvTnUVzC3ZlgspEbanh6E%2Fimage.png?alt=media&#x26;token=96f7f233-52bc-48b4-94ba-d350ddba676b" alt=""><figcaption></figcaption></figure>

**Export Format**

* CSV
* PDF
* XLSX

**Export Scope**

* **Selected data** reflects current filters and grouping
* **Raw data** exports the underlying ungrouped dataset

Exports are provided for convenience and reference.

***

### Getting Help

If something looks incorrect or unclear, please contact [Marinade Support](https://help.marinade.finance/en/).

To help us assist you faster, include:

* Your wallet address
* Approximate staking timeframe and amount
* Your email address
* Any relevant transaction links (if available)

***

<sub>*This report is provided for informational purposes only. Users are responsible for determining how staking rewards should be reported for tax purposes under their local laws. Marinade is not responsible for tax outcomes resulting from the use of this report.*</sub>


# Fees and Pricing

A single reference for every fee across Marinade products: what each fee is, how it is calculated, whether it is fixed or variable, and which costs come from third parties rather than from Marinade.

## Overview

This page is the single reference for every fee and cost across Marinade's products. It covers what each fee is, how it is calculated, whether it is fixed or variable, and which costs come from third parties rather than from Marinade.

**Marinade charges no deposit fee on any product, and takes no performance fee on staking rewards.** On-chain, the stake pool's `reward_fee` parameter is set to **0**. Costs occur only when you exit a position, plus one performance fee on the USDC Earn Vault.

### Fees at a Glance

<table><thead><tr><th width="115.199951171875">Product</th><th width="83.60003662109375">Deposit</th><th width="189.800048828125">Delayed Unstake</th><th width="230">Instant Unstake</th><th>Ongoing Fee</th></tr></thead><tbody><tr><td>Marinade Native</td><td>None</td><td><strong>0.003 SOL flat</strong></td><td>Dynamic, typically 0.10% to 0.40%, set by the market</td><td>None</td></tr><tr><td>Marinade Select</td><td>None</td><td><strong>0.003 SOL flat</strong></td><td>Dynamic, typically 0.10% to 0.40%, set by the market</td><td>None</td></tr><tr><td>Marinade Recipes (Customized Rewards)</td><td>None</td><td><strong>0.003 SOL flat</strong></td><td>Dynamic, typically 0.10% to 0.40%, set by the market</td><td>None</td></tr><tr><td>Marinade Liquid (mSOL)</td><td>None</td><td>0.2% (20 bps)</td><td>No Marinade fee on the swap route; the Marinade liquidity pool route charges 0.03% to 1.5%</td><td>None</td></tr><tr><td>USDC Earn Vault</td><td>None</td><td>Not applicable, withdrawals are instant and free</td><td>Not applicable</td><td>5% on net interest</td></tr></tbody></table>

Delayed Unstake on the staking products completes after **1 epoch, currently about a day and a half**. Instant exits settle immediately, and USDC Earn Vault withdrawals are always instant.

{% hint style="info" %}
**The Native, Select and Recipes Delayed Unstake fee is flat, not proportional.** It is 0.003 SOL whether you unstake 1 SOL or 100 SOL, so it is negligible on a large position and material on a very small one. The standard Solana signature fee of 0.000005 SOL applies on top.
{% endhint %}

***

### The Full Fee Schedule

| Fee                                  | Applies To                                         | Amount                                                                                                                                                                                                          | How It Is Charged                                                                                                                                                                 |
| ------------------------------------ | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Deposit fee                          | All products                                       | **None**                                                                                                                                                                                                        | No fee on entry to any Marinade product                                                                                                                                           |
| Reward or performance fee on staking | Native, Select, Recipes, mSOL                      | **None**                                                                                                                                                                                                        | The stake pool's on-chain `reward_fee` is 0                                                                                                                                       |
| Delayed Unstake                      | Marinade Native, Marinade Select, Marinade Recipes | **0.003 SOL, flat**                                                                                                                                                                                             | Charged in the unstake transaction from your wallet's SOL balance, not deducted from the amount you unstake. Independent of position size. No minimum position size               |
| Delayed Unstake                      | Marinade Liquid (mSOL)                             | **0.2% (20 bps)**                                                                                                                                                                                               | Deducted from the unstaked amount before the ticket is credited. The Receive amount shown in the app already reflects it                                                          |
| Withdraw stake account               | Marinade Liquid (mSOL)                             | **0.2% (20 bps)**                                                                                                                                                                                               | Applies when you take a stake account out of the mSOL pool instead of receiving SOL                                                                                               |
| Instant Unstake                      | Marinade Native, Marinade Select, Marinade Recipes | **Dynamic, typically 0.10% to 0.40%**                                                                                                                                                                           | Set by market makers quoting liquidity. The quote shown in the app is the full execution price. Available on positions of 1 SOL or more, on a stake account at least 2 epochs old |
| Instant Unstake                      | Marinade Liquid (mSOL)                             | **No Marinade fee on the swap route.** The Marinade liquidity pool route charges **0.03% to 1.5%**, rising as the pool is drawn down, with 50% of that fee going to the treasury and 50% to liquidity providers | The app routes to whichever venue returns the most SOL and shows the resulting quote before you confirm                                                                           |
| Performance fee                      | USDC Earn Vault                                    | **5% of net interest**                                                                                                                                                                                          | Taken from interest only, never from the deposit. Already reflected in the displayed net APY                                                                                      |
| Deactivating your own stake account  | Direct stake                                       | **No Marinade fee**                                                                                                                                                                                             | Only the standard Solana network transaction fee applies                                                                                                                          |

***

### How Marinade Earns

Marinade does not charge stakers a performance fee on staking rewards. Protocol revenue comes from the Stake Auction Marketplace, where validators bid for stake, and from exit fees, rather than from a cut of the yield delivered to stakers.

How that validator-side revenue is collected varies by product:

* **Native and Liquid (mSOL):** Validators bid for stake allocation through the Stake Auction Market (SAM). SAM runs a last-price auction, so a winning validator is charged only enough to deliver the realized yield to stakers.
* **Select:** Validators pay protocol fees through a bilateral agreement booked against the Select bond: 20 bps to Marinade plus up to 10 bps to the validator, on TVL annually.
* **Marinade Recipes (Customized Rewards):** A single Marinade-run validator handles delegation. Rewards are converted and delivered to the staker's wallet in the chosen reward token.

For Marinade Native specifically, this validator-side path is the only one structurally possible. Stakers keep withdraw authority over their own stake accounts, so a protocol cut on staker yield could not be taken even if Marinade wanted to.

The USDC Earn Vault works differently. It is a lending vault, so Marinade takes a 5% performance fee on the net interest earned. There are no deposit or withdrawal fees, and withdrawals are instant.

**Other Costs to Keep in Mind**

Some costs apply when using Marinade but are set by the network or by third parties, not by Marinade:

* **Solana network fees:** Standard per-transaction fees paid to the Solana network. For Marinade Native, Marinade covers the rebalancing fees each epoch.
* **Market liquidity spreads:** On an Instant Unstake, any market-maker spread or price impact is a market cost, not a Marinade fee. The full execution price is shown before the action is confirmed.
* **Third-party fees:** DEX, wallet, or exchange fees can apply when routing through other venues. These are independent of Marinade.

**Unstaking a Directly Staked Position**

Direct staking is not a Marinade product. It refers to SOL staked directly to a validator outside Marinade. Holders of such a position can exit it through Marinade if they choose: the same market-set pricing as Marinade Native applies on an instant exit, and a delayed exit carries no Marinade fee beyond the standard Solana network transaction fee.

***

### Revenue Allocation

Under [**MIP-22**](https://forum.marinade.finance/t/mip-22-mnde-liquidity-and-staking-rewards/1993), **10% of protocol revenue is allocated to programmatic open-market MNDE buybacks**. The MNDE bought is distributed to eligible MNDE stakers in Marinade Realms through the MNDE Staking Rewards Program. Distributions are paid each quarter. Claims for Q3 2026 rewards are open on the [MNDE claim page](https://app.marinade.finance/campaign/) until 1 April 2027. To be eligible, a wallet must have MNDE staked on the Marinade governance page and have cast at least one governance vote in the 12 months before the quarter ends. Each eligible wallet's share is based on its average staked balance over the quarter. MIP-22 also seeded the MNDE-mSOL pool with 10M MNDE from the DAO treasury. You can follow the buybacks on chain: the MNDE bought so far accumulates in `BBaQsiRo744NAYaqL3nKRfgeJayoqVicEQsEnLpfsJ6x`, viewable on [Solscan](https://solscan.io/account/BBaQsiRo744NAYaqL3nKRfgeJayoqVicEQsEnLpfsJ6x).

This is a different program from the earlier MIP-11 buybacks, which [MIP-17](https://forum.marinade.finance/t/mip-17-refocusing-from-buybacks-to-building-liquidity/1960) paused in favour of protocol-owned liquidity, and from MIP-13 Active Staking Rewards, which is closed.

Live figures are published here:

* [Marinade DAO Revenue dashboard](https://app.hex.tech/0195d1d1-bfc7-7001-8243-11ff2c293f01/app/Marinade-DAO-Revenue-030vg9JLITAA3GSoN8ee4y/latest)
* [Marinade DAO on Realms](https://v2.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo)


# FAQ

You'll find the answers to most of your questions here! If something is not yet answered, reach out to us on our Discord.

### **What is Marinade?**

Marinade is a stake automation platform built on Solana. It continuously monitors the validator landscape and delegates your stake using a transparent, on-chain strategy called the Stake Auction Market, designed to maximize staking rewards while supporting network decentralization.

Marinade offers two ways to stake:

* **Marinade Liquid.** Stake SOL and receive mSOL, a liquid token you can use across Solana DeFi while continuing to earn staking rewards.
* **Marinade Native.** Benefit from Marinade's delegation strategy with no smart contract interaction. You retain full custody of your SOL at all times.

***

### Is Marinade custodial?

No, Marinade is a non-custodial protocol. When staking to Marinade and receiving mSOL, you trade the custody of your SOL to receive custody over your received mSOL. With Marinade Native, you retain custody over your SOL at all times.

Marinade is also permissionless, meaning that our bot or our smart contracts can be interacted with by anyone, even in the absence of the team.

***

### **What is liquid staking?**

Liquid staking is an alternative to traditional staking (or native staking). It allows users to benefit from a protocol's staking rewards while receiving a receipt token (mSOL) for their staked SOL that can be used in DeFi, making their staked assets liquid. Liquid staking also allows an instant unstake of your staked assets.

***

### What is Marinade Native?

Marinade Native is a product released in July 2023 that allows users to benefit from Marinade's delegation strategy and have their stake automatically monitored and rebalanced, all while avoiding smart contract risk.

In exchange, the user does not receive mSOL and cannot use DeFi to look for additional yield.

***

### **How long does it take to stake and unstake?**

With Marinade, you can start staking SOL at any time from the UI. Your stake will begin earning yield from the first full epoch after it is activated.

You can also unstake from the UI at any time, using one of two options:

* [**Instant Unstake**](https://marinade.finance/features/instant-unstake)
  * For liquid staking (mSOL), the instant option is a swap via DEX from mSOL to SOL at the current market rate.
  * For native staking (including Marinade Native), the app shows a quote from a market maker for converting your staked SOL back to liquid SOL in one transaction.
  * In both cases you see an estimated receive amount before confirming, so you can decide whether you’re happy with the quote.
  * For native staking, Instant Unstake needs a stake account of 1 SOL or more that has been active for at least two epochs. A smaller or still-activating position can use Delayed Unstake.
* **Delayed Unstake**
  * If you don’t want to take a market quote, you can use Delayed Unstake.
  * Your position is scheduled to unlock and your SOL becomes claimable after **1 epoch**.
  * Marinade Native and native stake accounts have no cut-off. For mSOL, starting in the last 2 hours of an epoch takes one epoch longer. When it is ready, return to the app and claim. Keep about 0.03 SOL in your wallet for the claim transaction; it is a buffer, not a fee.
  * This option avoids price impact and simply follows Solana’s native unstaking flow.

For an overview of any fees that apply to each path, see **FAQ.**

***

### **Are staking rewards staked automatically?**

Staking rewards are compounded automatically into the staked SOL.

***

### Do I get MEV rewards by staking with Marinade?

Yes, you do. Marinade stakes to validator nodes running the MEV-optimized Jito validator client. Marinade collects and restakes these MEV rewards on the user's behalf. For mSOL holders, MEV is added to the price each epoch once rewards are claimed and added to the stake pool. For Marinade Native users, the MEV rewards are added to the user's stake.

***

### Has Marinade Been Audited?

Please refer to our Audits

***

### **Where Are my SOL Tokens?**

When you deposit your tokens, Marinade automatically spreads their delegation among the top-performing validators that actively participate to Solana decentralization (See Stake Auction Market). You will receive 'marinated SOL' (mSOL) tokens back in your wallet. mSOL can be unstaked to receive your SOL tokens back, plus rewards. mSOL increases in value every epoch relative to SOL.

If you use Marinade Native, your SOL tokens are in your wallet, in stake accounts, accumulating rewards.

***

### Where Can I See the Validators Marinade Delegates to?

You can find the full list of our current validators on [our website](https://marinade.finance/app/validators/?sorting=score\&direction=descending) or find Marinade's on-chain account [here](https://solscan.io/account/4bZ6o3eUUNXhKuqjdCnCoPAoLgWiuLYixKaxoa8PpiKk).

***

### How Long Does It Take for A Stake Account to Be Redelegated?

You can migrate an existing stake account to Marinade and choose what it becomes. Marinade Native accepts a stake account from any validator and redelegates it across Marinade's validator set, usually within 1 to 2 epochs. Marinade Liquid (mSOL) only works if your stake is already with a validator in Marinade's validator set. If it is not, choose Marinade Native instead.

Whether your stake account can be migrated depends on whether it is [eligible](#can-i-deposit-my-stake-account-directly).

Stake accounts are redelegated at the end of epochs and it can take 1 to 2 epochs to redelegate those stake accounts to validators chosen by our Stake Auction Market.

***

### How Can I Get mSOL?

There are different ways of obtaining mSOL:

* **Stake SOL to Marinade's staking pool and get mSOL**. This is the simplest way and has no fees.
* **Trade for mSOL on secondary markets** (centralized or decentralized exchanges like Coinbase, Raydium, Orca, etc.). Please keep in mind that in this case, you might be paying trading fees.

***

### Where Can I Use mSOL?

mSOL can be used in many DeFi protocols, all without losing your staking rewards.

For example, you can:

* Add mSOL to a liquidity pool on a decentralized exchange
* Lend your mSOL or use it as collateral on borrowing/lending protocols
* Supply mSOL to yield farming protocols
* Trade with your mSOL on CEXs and DEXs
* Etc.

We are always on the lookout for new protocols where mSOL could be integrated.

***

### How is mSOL's APY Calculated?

There are multiple ways to calculate the APY of a liquid staked token and they all have to rely on the projection of previous rewards over the next year. Nonetheless, Marinade tried its best to calculate and display the APY in the most honest and accurate way possible.

Marinade calculates its displayed APY using a 30-day SMA of the 14-day APY.

This means that in order to calculate the APY, Marinade uses the smart contract price of mSOL and compares it to the price mSOL had 14 days before. It does so every day and displays a final APY based on the average of those measurements over 30 days, projected over a year. You can see this data in our [stats page](https://stats.marinade.finance/).

***

### **Can I Deposit My Stake Account Directly?**

Yes, if the stake account is eligible. Marinade Native accepts a stake account from any validator. Marinade Liquid (mSOL) only accepts one that is already with a validator in Marinade's validator set. If you cannot migrate it, the usual reasons are:

* Your stake account is not active yet. Activation takes 1 to 2 epochs, so try again later.
* Your stake account is deactivating.
* Your stake account has an active lockup that has not expired.
* Your stake account is smaller than 1.0046 SOL, the Marinade Native minimum.
* You chose Marinade Liquid and your validator is not in Marinade's validator set. In that case, choose Marinade Native.

***

### **Any Public Sale or IDO?**

Marinade is bootstrapped and self-funded with help from ecosystem grants provided by Solana and Serum. We're not taking in any private investors or VC funds and are not doing any private or public sales. Marinade has been governed by its DAO on chain since April 2022, with MNDE holders voting on Realms.

***

### How Can I Use My MNDE?

MNDE can be used to participate in Marinade governance by locking your MNDE on Realms.

Once your MNDE is locked, you can vote on proposals. The MNDE can be withdrawn by committing to a 30-day unlock period to get back the underlying MNDE.

***

### Does Marinade Vouch for the Security of Protocols Using mSOL?

No. mSOL is a permissionless token that can be integrated anywhere and by anyone. If a project offers the possibility to use mSOL, this does not mean that the project is safe or audited by the Marinade team at all.

We encourage you to always do your due diligence on your investment projects. If you have any doubts or questions, we will gladly discuss them with you on our Discord.

***

### Can I Use Marinade With A Hardware Wallet?

Any hardware wallet supporting Solana and SPL tokens will also support mSOL. You can send your mSOL to the Solana address of your hardware wallet and manage your funds from it.

To interact with DeFi protocols, you will need to connect your hardware wallet to a compatible browser-extension wallet such as Phantom, Solflare, Backpack or Jupiter. Refer to your hardware wallet's official documentation for setup instructions.

Not every wallet supports every device. Phantom supports Ledger only. Solflare supports Ledger and Keystone. Backpack and Jupiter wallet support Ledger, Trezor and Keystone. If you use a Ledger, enable Blind signing in the Solana app settings, and re-check it after every firmware update.

***

### How To Check My Marinade Native Stake Accounts?

Solana explorers sometimes have trouble displaying stake accounts handled by Marinade Native. If you would want to check that your stake accounts exist on-chain and still are under your custody, you can directly run the Solana CLI on your machine and use the command:

```
solana stakes --withdraw-authority <pubkey>
```

Replace `pubkey` by your pubkey and you will get a list of all the stake accounts that belong to your wallet, including the ones created by Marinade Native.

***

### What Fees Does Marinade Charge?

#### **Deposit Fee**

There is no deposit fee for any of the Marinade staking options.

#### **Unstake Fee**

**Instant Unstake**

**For Marinade Native positions (and other regular native staking positions):**

* **Fee:** Dynamic, typically between 10 and 40 basis points (0.10–0.40%).
* **Applies to:** Marinade Native positions and other native staking positions exited via Instant Unstake.
* **Notes:** Pricing is determined by an open market and depends on how market makers quote liquidity. The quote shown in the UI reflects the full execution price, including any fee or spread.

**For Marinade Liquid (mSOL):**

* **Fee:** No protocol fee.
* **Notes:** This is effectively a swap, not a traditional unstake. Price impact may apply depending on swap size and available liquidity.

**Delayed Unstake (1-epoch delay)**

**For Marinade Native, Marinade Select, and Marinade Recipes (Customized Rewards):**

* **Fee:** A flat 0.003 SOL, the same whatever the size of your position. It is charged from your wallet's SOL balance, not deducted from the amount you unstake.
* **Notes:**
  * You wait one epoch and then claim the full stake plus rewards.
  * There is no deposit fee, so entering is free and exiting with Delayed Unstake costs 0.003 SOL.

**For Marinade Liquid (mSOL):**

* **Fee:** 0.2% (20 basis points).
* **How it's charged:**
  * The fee is deducted from the unstaked amount before the ticket is credited.
  * The Receive amount shown in the UI already reflects the fee.
* **Minimum unstake amount:** 1.0043 SOL. Below that, use Instant Unstake.
* **Notes:** Provides predictable exit pricing and shifts protocol revenue toward exit-based fees instead of continuously charging staking rewards.

**For Direct Stake (deactivating your own stake account):**

* **Fee:** No Marinade fee. Only the standard Solana network transaction fee applies.
* **Notes:** Direct Stake unstake is a deactivation of the user's own stake account, not a Marinade protocol unstake.

#### Performance Fee

**Marinade Select:**

* **Fee:** None. Marinade does not take a performance fee on Select staking rewards.
* **Notes:** Select validators contribute through their bond agreement. That is a validator-side cost and is not deducted from your rewards. Select is not currently available to stake to; existing Select positions are unaffected.

**Stake Auction Market (SAM):**

* **75% fee on bid flow** (validators pay to receive stake)
* **0% fee on staking rewards**

#### **For USDC Vault:**

* **Fee:** No deposit or withdrawal fee. Withdrawals are instant (no 1-epoch delay).
* **Performance fee:** 5% on the net interest generated by your position. Already reflected in the displayed net APY.
* **Notes:** USDC Vault is a lending vault, not a staking product, so the 1-epoch Delayed Unstake flow does not apply. See [USDC Earn Vault](https://docs.marinade.finance/marinade-protocol/protocol-overview/usdc-earn-vault#fees) for full details.

***

#### Revenue Sharing & Transparency

**Revenue Allocation**

Protocol revenue is allocated by the Marinade DAO in accordance with approved governance proposals.

Under [**MIP-22**](https://forum.marinade.finance/t/mip-22-mnde-liquidity-and-staking-rewards/1993), **10% of protocol revenue** funds programmatic open-market **MNDE buybacks**. The remainder supports:

* Liquidity provisioning
* Ecosystem development and operations
* Other initiatives approved by the DAO

**Transparency**

* [**Hextech Dashboard**](https://app.hex.tech/0195d1d1-bfc7-7001-8243-11ff2c293f01/app/Marinade-DAO-Revenue-030vg9JLITAA3GSoN8ee4y/latest) – DAO revenue, allocations, and historical activity
* [**Marinade Realms Treasury**](https://v2.realms.today/dao/marinade/treasury) – On-chain governance and treasury management

***

### What are Marinade Recipes, and what are Customized Rewards?

They are the same feature under two names. Marinade Recipes, also referred to as Customized Rewards, let a staker keep their SOL principal in SOL while receiving each epoch's staking rewards in a token of their choice, such as USDG, USDC, BTC, or MNDE. For the full list and details, see the Marinade Recipes page.


# Glossary

**APY**

Also known as Annual Percentage Yield, APY refers to the compounded returns you get on your assets over one year. In DeFi, the value of APY changes widely based on different factors and can change quickly.

It is different than APR, which means "Annual Percentage Rate" and represents the returns of an investment over one year without compounding.

**Bond**

Collateral posted on-chain by a validator. The SOL in a bond stays delegated to that validator and is charged when the validator owes stakers compensation under Protected Staking Rewards, or owes Marinade under a Stake Auction Market settlement. See Protected Staking Rewards.

**Custodial / Non-custodial protocol**

In a custodial protocol, the protocol controls the keys of the assets you own and stores these assets on your behalf.

In a non-custodial protocol, the protocol does not have access to the private keys of the assets its users deposit. Moreover, the protocol cannot block any users from withdrawing their funds at any point.

Marinade is non-custodial in both of its shapes:

* **Marinade Liquid:** your SOL is exchanged for mSOL, which gives you ownership of a share of the staking pool. You can convert back to SOL at any time.
* **Marinade Native, Select and Recipes:** your SOL stays in Solana stake accounts where **you remain the withdraw authority**. Marinade holds only the stake authority, which lets it delegate and rebalance but never move your principal.

**Customized Rewards**

See Marinade Recipes.

**Delayed Unstake**

The exit path that follows Solana's own unstaking flow: your stake is deactivated and your SOL becomes claimable after **1 epoch**. On mSOL, starting one in the last 2 hours of an epoch pushes the claim back by one further epoch. Marinade Native and native stake accounts have no cut-off. It avoids market price impact. On Marinade Native and Marinade Select it has **no minimum position size**, so it is the path for a native position under 1 SOL. mSOL Delayed Unstake has a minimum of **1.0043 SOL**. It costs a **flat 0.003 SOL** on Marinade Native, Marinade Select and Marinade Recipes, and **0.2%** on mSOL. See Fees and Pricing.

**Delegators**

Delegators are those who let their SOL count towards the stake of a selected validator, in exchange for a share of the rewards that validator earns. On Solana this is done by pointing a stake account at a validator's vote account. Marinade automates the choice of validator on your behalf.

**Epoch**

In the Solana network, an epoch has a variable time corresponding to the time a leader schedule is valid. An epoch lasts **about a day and a half**, and it moves with slot times, so treat any fixed figure as approximate. You can follow the current and previous epochs on a Solana explorer or in the [Marinade app](https://app.marinade.finance).

**Instant Unstake**

The exit path that converts a staked position back to liquid SOL in one transaction, at a price quoted by market makers or a DEX. It settles immediately. On Marinade Native and Select it usually costs more than Delayed Unstake. On mSOL it carries no Marinade fee, only the DEX spread, so it is often the cheaper exit; compare the Receive amount in the app. On native positions it needs **1 SOL or more**, on a stake account at least **2 epochs old**, and the spread is typically **0.10% to 0.40%**. See Fees and Pricing.

**Liquidity**

Liquidity refers to the total available circulating supply of a given asset in a protocol.

**Liquidity Mining**

Liquidity mining is a distribution method where the tokens of a newly created platform are distributed between users who provide liquidities to the protocol. It aims at distributing those tokens over time instead of going with sales round.

**Liquidity Pool**

A liquidity pool is a smart contract where a pair of tokens is locked and made available for swaps. Any pair of tokens can have liquidity pools created for them (mSOL/SOL, SOL/USDC, MNDE/SOL, etc.). This smart contract allows anyone to exchange one of the tokens of the pair for the other, in exchange for a small fee distributed to the liquidity providers, people who made their liquidity available in this smart contract.

Liquidity pools are one of the pillars of DeFi since they allow one to swap a token for another without the need for an order book and in a trustless manner.

**Marinade Native**

A staking path where Marinade's delegation strategy is applied to stake accounts that stay in your own name. The Native Staking Proxy program holds the stake authority so it can delegate and rebalance; you keep the withdraw authority. See Marinade Native.

**Marinade Recipes**

A native staking path where the staker's SOL principal stays in SOL and the staking rewards are converted each epoch into a chosen payout token, such as USDG, USDC, EURC, BTC, ETH, gold, MNDE, or tokenized equities. Also referred to as Customized Rewards.

**Marinade Select**

A native staking path delegating to a smaller, vetted validator set, aimed at institutional stakers and backed by validator bonds. It is not currently available to stake to; existing Select positions are unaffected. See Marinade Select.

**Multisig Wallet**

A multisig wallet is a crypto wallet with multiple layers of control to make transactions with the wallet. Such a wallet is defined by a set of smart contract rules that mandate numerous approvals from different users to transact from the wallet.

**Protected Staking Rewards (PSR)**

Marinade's performance protection for stakers. When a validator underperforms or raises commission mid-epoch, its bond is charged to compensate affected stakers. See Protected Staking Rewards.

**Solana Staking Rate (SSR)**

The network-wide benchmark rate for what SOL staking returns. As published by Marinade's APY API, the SSR is computed from **inflation and block rewards, and excludes MEV**, so it reads lower than rates that include MEV.

**Stablecoin**

A stablecoin is a cryptocurrency designed always to match the price of a fiat currency as closely as possible. Each stablecoin (USDT, USDC, DAI, etc.) has its backing mechanisms and needs to be considered individually. Stablecoins are primarily used to quickly swap between crypto and dollars without involving fiat transactions.

**Stake account**

In the Solana network, a stake account is created when a wallet stakes to a validator. This stake account is the "stake receipt" proving that their funds are staked to a specific validator.

You can migrate an existing stake account to Marinade without unstaking it first. Marinade Native accepts it from any validator. Marinade Liquid (mSOL) is only available if the stake is already with a validator in Marinade's validator set, in which case you receive mSOL.

**Stake Auction Market (SAM)**

Marinade's on-chain delegation strategy. Validators bid each epoch for the right to receive Marinade stake, and those bids raise the yield delivered to stakers. SAM uses a last-price auction, so a winning validator is charged only enough to deliver the realized yield. See Stake Auction Market.

**Total Value Locked (TVL)**

TVL is a metric representing the total amount of money in a protocol.

**Validators**

Validators are nodes that validate transactions by staking (locking) their SOL tokens to keep the Solana network secure. They receive compensation in terms of staking rewards to the proportion of the total tokens staked by them. To stake more SOL, they can be delegated SOL by users who wish to contribute to their node in exchange for a share of their rewards.


# Security

Security has always been a primary concern for Marinade. We are doing everything we can to set a high standard for security in our protocol and in the Solana ecosystem.

## Overview

Marinade's security and availability commitment: <https://public.marinade.finance/security-and-availability-commitment.pdf>

### On-chain contracts

A list of Marinade's on-chain smart contracts is available here:

{% hint style="info" %}
The **referral program is paused** and there is currently no referral interface, so ordinary staking goes to Marinade's own programs. No partner fees are paid while it is paused, including under agreements signed before the pause. If the program relaunches and you stake through a referral link, the contract you interact with will be the referral program rather than Marinade's main smart contract. Either way, verify the program you are signing against the published address list above before you approve a transaction.
{% endhint %}

***

### Risks

When you participate in DeFi, you always expose yourself to risks. An investor's job is to mitigate these risks and stay informed on them to make the best possible decisions. Let's see what different types of risk exist when you use Marinade and how we worked to mitigate them.

***

### Technical risks

#### Blockchain risks

When you use Marinade.Finance, you use a protocol that relies on the Solana blockchain. If the Solana blockchain were to be attacked successfully, the funds on Marinade could be at risk.

**Marinade's recipe**: Solana was chosen for many reasons, one of which was that it has high security. Solana has been audited by [Kudelski Security](https://solana.com/solana-security-audit-2019.pdf) and is a blockchain that operates with a hybrid consensus mechanism, integrating [Tower BFT](https://medium.com/solana-labs/tower-bft-solanas-high-performance-implementation-of-pbft-464725911e79) and [Proof-of-History](https://medium.com/solana-labs/proof-of-history-a-clock-for-blockchain-cf47a61a9274). You can learn more about Solana through their [whitepaper](https://solana.com/solana-whitepaper.pdf).

#### **Contract risks**

In DeFi, any protocol can potentially be attacked by hackers. They will look for loopholes and bugs that allow them to abuse the protocol for their gain.

**Marinade's recipe**: We emphasize security and have been conducting formal audits all along the way. We have successfully completed **6 audits and 1 code review**, the most recent by Neodyme in May 2026. We also run a **bug bounty** on Immunefi covering the liquid staking program (liquid-staking-program), with rewards of up to $250k for critical findings. Other Marinade programs are not part of the Immunefi scope; the Bug Bounty page below explains how to report issues in those. Click on the pages below to access them.

### Financial risks

#### Trust risks

As you may know, DeFi can be a brutal environment, and some actors have already abused the trust of people using their services. We did not want this to be a possibility with our protocol.

**Marinade's recipe**: no single party can change Marinade on their own. Authority is split across four layers rather than held by one multisig:

* The **mSOL liquid staking program** can only be upgraded by an **ecosystem multisig that requires 6 signatures out of 13**, where the majority of signers are founders and teams from other Solana projects. Marinade alone cannot reach the threshold.
* **Everything else**, including Marinade Native, Marinade Select, Validator Bonds, Recipes, gauges and referrals, sits under **MNDE-locked DAO governance** on Realms.
* Day-to-day operations sit with the **Marinade Council, 3 of 5**, within bounds the DAO sets.
* Emergency **pause** authority sits with a separate **3-of-5 Emergency Pause Council**, which can pause but never upgrade.

Click the page below for the full breakdown, including the on-chain addresses for each layer.

#### Legal risks

When you use Marinade, you take full responsibility for your actions. It is your duty as an investor to check the current regulations in your country of residence and to act accordingly.

**Marinade's recipe**: All our legal content can be found on the page below. If you have any doubts, please get in touch with your financial authorities for confirmation.


# Audits

You'll find here the list of our audits and code review reports.

## 2026

**Neodyme: Canonical Stake and Deposit Fee Upgrade**

Neodyme audited two changes to Marinade's on-chain liquid staking program in May 2026: the introduction of canonical stake accounts and the addition of deposit fee functionality. The review covered both implementation security and overall design, and found no issues at any severity level. Because the changes were scoped additions to the existing program, the threat model and economic analysis from the 2023 audit remain valid.

{% file src="/files/k5E0jKTthOF8F1LkwaIb" %}

## 2024

**Neodyme: Marinade Validator Bonds**

Neodyme audited Marinade's on-chain Validator Bond program during March and April of 2024. The scope of this audit was focused on technical security, with further considerations about operational security.

The auditors found that Marinade’s Validator Bond program comprised a clean design and above-standard code quality, relying on the industry-standard Anchor framework.&#x20;

{% file src="/files/PkTwuRDK02agZbDh3WZ0" %}

## 2023

### Audit reports

In November 2023, Marinade upgraded its smart contract to include several improvements (see [this article](https://marinade.finance/blog/marinade-is-preparing-smart-contract-upgrade/)). To ensure that the code remains as solid as it has always been, two audits were conducted on the upgraded version of the smart contract. They are available below:

* Neodyme: <https://marinade.finance/docs/Neodyme_2023.pdf>
* Sec3: <https://marinade.finance/docs/Sec3_2023.pdf>

## 2021

### Audit reports

* [**Kudelski Security**](https://kudelskisecurity.com/) **-** To become the next unit of account on the Solana network, Marinade had to ensure the protocol was as safe as Solana itself. Therefore, we were audited by Kudelski Security, a reputable audit firm that Solana Labs chose to audit Solana.\
  Read the audit: <https://marinade.finance/docs/KudelskiSecurity.pdf>
* [**Ackee Blockchain**](https://ackeeblockchain.com/) **-** Ackee Blockchain specializes in audits and security assessments and has worked on the security of major blockchains such as Ethereum, Tezos, and Celo. Their audit has allowed us to improve our protocol's security standard further.\
  Read the audit: <https://marinade.finance/docs/AckeeBlockchain.pdf>

### Code review reports

* [**Neodyme**](https://neodyme.io/) **-** Neodyme is an audit firm specializing in security that recently published a full article on Solana smart contract security. Their blockchain expertise and familiarity with Solana made them a perfect fit to audit our protocol. \
  Read the code review: <https://marinade.finance/docs/Neodyme.pdf>


# Principal Service Commitments and System Requirements

An overview of Marinade Finance’s key commitments and technical controls to ensure security, availability, and compliance with SOC 2 standards.

## **Introduction**

This document outlines Marinade Finance’s principal service commitments and system requirements in accordance with SOC 2 standards from the AICPA. It covers the **Security** and **Availability** trust service principles, including both high-level commitments and specific technical controls.

***

## **Security Principle**

### **Service Commitments**

* **Data Protection:** User data is encrypted both in transit and at rest.
* **Access Control:** Strict access controls ensure only authorized personnel access sensitive data and systems.
* **Incident Response:** A robust plan is in place to respond promptly to security breaches or vulnerabilities.
* **Access Controls:** Multi-factor authentication (MFA) is enforced for Marinade's internal systems and privileged administrative access. Marinade is non-custodial; there are no user accounts or passwords.
* **Regular Audits:** Routine security audits and vulnerability assessments are conducted to identify and mitigate risks.
* **Smart Contract Security:** All smart contracts undergo formal audits and are supported by a bug bounty program.

### **System Requirements**

* **Encryption:** AES-256 for data at rest and TLS for data in transit.
* **Access Management:** Role-based access control (RBAC), with periodic reviews of access rights.
* **Monitoring & Logging:** Comprehensive systems to detect and respond to suspicious activity.
* **Network Security:** Firewalls and IDS/IPS deployed to secure the network perimeter.
* **Patch Management:** Security patches and updates are applied promptly across systems.
* **Smart Contract Audits:** Regular audits by reputable firms and incentivized vulnerability discovery via bug bounties.

***

## **Availability Principle**

### **Service Commitments**

* **Uptime Guarantee:** 99.9% uptime target (excluding the Solana network’s availability, which is outside Marinade’s control).
* **Disaster Recovery:** A tested recovery plan ensures business continuity during system failures or disasters.
* **Scalability:** The platform is built to scale with user demand without degrading performance.
* **Maintenance Windows:** Planned and communicated maintenance windows minimize user disruption.
* **Redundancy:** Redundant systems and data backups safeguard against data loss and ensure continuity.

### **System Requirements**

* **Load Balancing:** Distributes traffic evenly to prevent server overload.
* **Backup & Recovery:** Regular backups with tested recovery processes to ensure data integrity and availability.
* **Failover Mechanisms:** Automatic switching to backup systems in case of failure.
* **Performance Monitoring:** Continuous system monitoring for resource usage and performance bottlenecks.
* **Cloud Infrastructure:** Deployed on redundant, high-availability cloud infrastructure.

***

## **Conclusion**

Marinade Finance is dedicated to delivering a secure and reliable staking automation platform on the Solana network. Through rigorous controls, security-first engineering, and resilient infrastructure, Marinade ensures alignment with SOC 2 standards and reinforces user trust across all levels of the platform.


# Multisig governance

Marinade's on-chain authority is not a single multisig. It is split across four layers, and each layer authorizes different actions on different programs. Knowing which layer controls what is the poin

## Quick Reference

<table><thead><tr><th width="62">Layer</th><th width="231">Body</th><th>Threshold</th><th>What It Authorizes</th></tr></thead><tbody><tr><td>1</td><td><strong>Ecosystem multisig</strong></td><td>6 of 13</td><td>Upgrade authority for the main mSOL liquid staking program, and nothing else</td></tr><tr><td>2</td><td><strong>MNDE Realm (the DAO)</strong></td><td>MNDE-locked vote, 2% quorum</td><td>Upgrade authority and admin parameters for Native, Select, Validator Bonds, Recipes, gauges, referrals and the rest of the contract surface</td></tr><tr><td>3</td><td><strong>Marinade Council</strong></td><td>3 of 5</td><td>Day-to-day operations: protocol fee adjustments within DAO-set bounds, contract parameters, gauges, Foundation operations</td></tr><tr><td>4</td><td><strong>Emergency Pause Council</strong></td><td>3 of 5</td><td>Pause authority on the mSOL program and Validator Bonds. It can pause, it cannot upgrade</td></tr></tbody></table>

***

## What Is a Multisig?

A multisig is a wallet whose authority is shared across multiple independent keyholders. One signature is not enough: a threshold number of holders, on different keys and often on different continents, must each sign before a decision executes.

This **distributes governance power among multiple wallet holders** so that no single party, Marinade included, can change a program on their own.

***

## Layer 1: Ecosystem Multisig (6 of 13)

This multisig is the **upgrade authority for the main mSOL liquid staking program only**. It does not control Marinade Native, Marinade Select, Validator Bonds, Recipes, gauges or referrals, it cannot pause the protocol, and it cannot move treasury funds.

It is composed of 13 signing slots, distributed among some of the most reputable parties in the Solana ecosystem:

* [Jupiter](https://jup.ag/)
* [Mango](https://mango.markets/)
* [Marinade team](https://marinade.finance/) (3 slots)
* [Miton C](https://mitonc.com/)
* [Orca](https://orca.so/)
* [Phantom](https://phantom.app/)
* [Raydium](https://raydium.io/)
* [Solend](https://solend.fi/)
* [Solflare](https://solflare.com/)
* [Staking Facilities](https://stakingfacilities.com/)
* [Triton.one](https://www.triton.one/)

**6 of 13 signatures** are required to upgrade the program. The majority of signers are external, so Marinade alone cannot reach the threshold. The multisig runs on a frozen, non-upgradeable Serum multisig program.

The threshold is readable on chain and does not have to be taken on trust. The multisig account `magrsHFQxkkioAy45VWnZnFBBdKVdy2ZiRoRGYT9Wed` holds **13 owner slots and a threshold of 6**, and its program-derived signer, `551FBXSXdhcRDDkdcb3ThDRg84Mwe5Zs6YjJ1EEoyzBp`, is exactly the upgrade authority recorded against the mSOL program. See the address table below.

{% hint style="info" %}
The multisig was **6 of 11** at mainnet launch in August 2021 and after the November 2022 signer rotation. It was later expanded to **6 of 13**. If you find the 6-of-11 figure in older Marinade writing, it is a historical state, not the current one.
{% endhint %}

***

## Layer 2: MNDE Realm, the DAO

Everything that is not the mSOL program sits under **MNDE-locked DAO governance**, run on SPL Governance through Realms with the Voter Stake Registry plugin. This is a live governance system, not a future plan.

Contracts under MNDE Realm authority include the Marinade Native staking proxy, the Marinade Select institutional proxy, Validator Bonds, Recipes, Tokadapt, validator and liquidity gauges, the liquid staking referral program, directed stake, the Incentives Distribution Program, the Voter Stake Registry and the Atomic Swap contract.

**Quorum**: 2% of MNDE supply.

The DAO also owns the **protocol treasury**. Treasury spend and revenue allocation are DAO votes, executed by the Council. The protocol treasury is distinct from Marinade Labs' operational treasury and the two should never be conflated.

***

## Layer 3: Marinade Council (3 of 5)

The Council holds **operational authority**: the day-to-day management that does not warrant a full DAO vote. It is composed of 5 internal Marinade roles and operates through Realms, with proposals publicly visible.

The Council can adjust protocol fees within DAO-set bounds, execute DAO-authorized budget, tune parameters on the secondary contracts where the DAO has delegated parameter control, set delegation strategy parameters, and add or remove liquidity incentive gauges. Validator gauges remain permissionless on Realms.

The Council **cannot** upgrade contracts, and it cannot commit beyond the DAO-authorized budget without a vote.

{% hint style="info" %}
Older documentation described a "Treasury multisig" at 4 of 7 and a separate "Operational multisig" of 5. Both have been superseded by the Marinade Council at **3 of 5**.
{% endhint %}

***

## Layer 4: Emergency Pause Council (3 of 5)

The same five people as the Marinade Council, acting under a different authority: **pause only**, on the mSOL program and the Validator Bonds program. It is used for an active exploit, critical validator misbehaviour, or a network-level event needing a protocol-level response.

It cannot upgrade or modify anything. Resuming a paused program is a separate authorization.

***

## Addresses

| Role                                                                     | Address                                        |
| ------------------------------------------------------------------------ | ---------------------------------------------- |
| Ecosystem multisig account (13 signer slots, threshold 6)                | `magrsHFQxkkioAy45VWnZnFBBdKVdy2ZiRoRGYT9Wed`  |
| Ecosystem multisig signer, the mSOL program's on-chain upgrade authority | `551FBXSXdhcRDDkdcb3ThDRg84Mwe5Zs6YjJ1EEoyzBp` |
| Serum multisig program the above runs on                                 | `msigmtwzgXJHj2ext4XJjCDmpbcMuufFb5cHuwg6Xdt`  |
| mSOL liquid staking program                                              | `MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD`  |
| mSOL State account                                                       | `8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC` |
| MNDE Realm (DAO)                                                         | `899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo` |
| Emergency pause authority                                                | `AjGjLWx7vbzgPNxPSQUPjLNjeavQCHVS9VoJNWpnyP6n` |
| Marinade Native staking proxy                                            | `mnspJQyF1KdDEs5c6YJPocYdY1esBgVQFufM2dY9oDk`  |
| Validator Bonds program                                                  | `vBoNdEvzMrSai7is21XgVYik65mqtaKXuSdMBJ1xkW4`  |

The Native proxy and Validator Bonds are upgraded by a **different** authority from the mSOL program, which is the layer separation described above, visible on chain.

***

## Operational Parameters

The Council can change the operational parameters of the protocol and of the mSOL-SOL liquidity pool. These include:

* `liquidity-target` and `liquidity-sol-cap` for the mSOL-SOL liquidity pool
* `min-fee` and `max-fee`, the bounds of the Instant Unstake fee curve
* `min-deposit`, the minimum SOL amount that can be staked
* `min-stake`, the minimum SOL amount for stake and unstake actions executed by the bot and for depositing a stake account
* `min-withdraw`, the minimum SOL amount that can be withdrawn
* `slots-for-stake-delta`, the number of slots before the end of the epoch at which the bot starts to stake and unstake
* `staking-sol-cap`, the maximum SOL amount that can be staked in the protocol
* `rewards-fee`, the protocol fee on staking rewards

{% hint style="warning" %}
**These values change.** This page deliberately does not print them, because a printed value goes stale the moment the Council adjusts it. The authoritative source is the on-chain **State account** `8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC`, readable with any Solana RPC client or block explorer.

Two points worth knowing as of this writing, both read from the State account on 18 September 2026: the **staking SOL cap is unset**, so there is no maximum stakeable amount, and the **protocol `rewards-fee` is 0**. The program caps `rewards-fee` at 10%, so it can never be set above that.
{% endhint %}

For what Instant Unstake actually costs you today, see the Instant Unstake page rather than the parameter names above.


# Legal

{% content-ref url="/pages/KTm3A7kQg4xZbBKTeF7Y" %}
[Terms of Use and Privacy Policy](/marinade-protocol/legal/terms-of-use-and-privacy-policy)
{% endcontent-ref %}

{% content-ref url="/pages/-MfhTWNoNbMthvWY-Rjb" %}
[Risks](/marinade-protocol/legal/risks)
{% endcontent-ref %}

{% content-ref url="/pages/-MfiZPnQQKMaFexTT4JN" %}
[Disclaimer](/marinade-protocol/legal/disclaimer)
{% endcontent-ref %}


# Terms of Use and Privacy Policy

Terms of Use, Privacy Policy, and the legal terms governing use of the Marinade website and Services.

## Overview

The Marinade website and the Services made available through it are governed by the documents below.

{% hint style="info" %}
The use of any of our products and tools that can be made available from time to time is subject to and governed by our [Terms of Use](https://marinade.finance/terms-of-use). By accessing or using any of such products or tools, you confirm that you have read and understood our Terms of Use, agree to be bound by them, and that your use complies with all applicable requirements set out herein.

For information on how we collect, use, and process your personal data, please refer to our [Privacy Policy](https://marinade.finance/privacy-policy).
{% endhint %}

Our products and tools may not be available to users in certain jurisdictions. It is your responsibility to ensure that your use of the platform complies with applicable laws in your jurisdiction.

This platform is operated by Medium Rare Foundation, a foundation established in Panama.


# Risks

Key risks associated with using the Marinade website and Services, including smart contract, validator, market, and third-party protocol risk.

## Overview

Using the Services involves significant risk. The summary below highlights the main categories. It is not exhaustive.

{% hint style="warning" %}
Staking and using the Services can result in the loss of some or all funds. The full risk disclosures are set out in the [Terms of Use](https://marinade.finance/terms-of-use), which are the authoritative and binding version.
{% endhint %}

**Protocol and Smart Contract Risk**

* **Smart contract risk:** The Protocol relies on smart contracts that may contain vulnerabilities, exploits, or failures.
* **Network risk:** Solana network congestion, outages, or consensus issues can delay or disrupt transactions.
* **Validator risk:** Validators may underperform or go offline, which reduces the rewards earned for that period. Solana does not have slashing today; if it is introduced, validator misbehaviour could put stake at risk.
* **MEV and front-running:** On-chain activity may be exposed to MEV, front-running, or slippage.

**Asset and Market Risk**

* **Price volatility:** Digital asset values can be highly volatile and may decline significantly.
* **De-peg risk:** The market value of a wrapped asset such as mSOL may diverge from the underlying staked SOL. Price, redemption parity, and liquidity are not guaranteed.
* **Liquidity constraints:** Unstaking timing and amounts received vary with network conditions and available liquidity.
* **No guaranteed yield:** All yields and APY figures shown are estimates only and may be lower, or result in loss of principal.

**Third-Party and Vault Risk**

* **Third-party protocols:** Some Services, including the Vault, may route assets to third-party protocols not controlled or custodied by Marinade.
* **Oracle and data feed risk:** The Services may rely on oracles and external data feeds that can be delayed, inaccurate, or manipulated.

**Regulatory and Jurisdictional Risk**

* **Regulatory uncertainty:** The regulatory status of digital assets and staking is unsettled and subject to change.
* **Jurisdictional availability:** The Services may not be available in certain jurisdictions. Users are responsible for ensuring their use complies with applicable local law.

**User Responsibility**

* **Non-custodial:** Marinade does not hold or control user funds or private keys. Wallet and key security is the user's responsibility.
* **No professional advice:** Nothing in the Services constitutes financial, investment, legal, or tax advice.
* **Tax:** Users are responsible for determining and meeting any tax obligations arising from their use of the Protocol.


# Disclaimer

Disclaimers governing the use of the Marinade website and Services, provided on an as-is basis without warranties.

## Overview

The information and functionality provided through the Marinade website and Services are subject to the disclaimers summarized below.

{% hint style="warning" %}
The Services are provided on an "as is" and "as available" basis, without warranties of any kind. This summary is not exhaustive. The [Terms of Use](https://marinade.finance/terms-of-use) are the authoritative and binding version.
{% endhint %}

#### No Warranties

* **As-is basis:** The Services are provided without any representation or warranty, whether express, implied, or statutory.
* **No guarantee of availability:** Access to the website and Services may not be continuous, uninterrupted, timely, or error-free.
* **No guarantee of accuracy:** Information may be incomplete, inaccurate, or out of date, and may be amended at any time.

#### No Professional Advice

* **Not advice:** Nothing in the Services constitutes financial, investment, legal, tax, or other professional advice.
* **Independent decisions:** Users are solely responsible for their own decisions and should consult independent professional advisors.

#### Non-Custodial Service

* **No custody:** Marinade does not hold, manage, or control user funds or private keys.
* **On-chain execution:** All transactions occur on-chain through smart contracts, and users bear the associated risks.

#### Third-Party Services

* **No control:** Third-party protocols, smart contracts, oracles, and service providers are outside Marinade's control.
* **No liability:** Marinade is not liable for losses arising from the use of such third-party systems.

#### Limitation of Liability

* **Aggregate cap:** The Terms of Use set out the full limitation and exclusion of liability, including an aggregate liability cap.
* **Refer to the Terms:** For the complete and binding disclaimers and liability terms, see the [Terms of Use](https://marinade.finance/terms-of-use).


# Marinade Ts/Js SDK

This is a marinade typescript and anchor based SDK to interact with Marinade from any Front-End App

## Which SDK Do I Need

<table><thead><tr><th width="243">Product</th><th width="355.20001220703125">Package</th><th>Repository</th></tr></thead><tbody><tr><td><strong>mSOL liquid staking</strong>, Instant Unstake, legacy mSOL/SOL liquidity pool (inactive)</td><td><code>@marinade.finance/marinade-ts-sdk</code></td><td><a href="https://github.com/marinade-finance/marinade-ts-sdk">marinade-ts-sdk</a></td></tr><tr><td><strong>Marinade Native</strong></td><td><code>@marinade.finance/native-staking-sdk</code></td><td><a href="https://github.com/marinade-finance/native-staking">native-staking</a></td></tr><tr><td><strong>Marinade Select</strong>, existing positions only</td><td><code>@marinade.finance/native-staking-sdk</code></td><td><a href="https://github.com/marinade-finance/native-staking">native-staking</a></td></tr><tr><td><strong>Validator bonds</strong>, SAM bidding, PSR</td><td><code>@marinade.finance/validator-bonds-cli</code></td><td><a href="https://github.com/marinade-finance/validator-bonds">validator-bonds</a></td></tr></tbody></table>

{% hint style="warning" %}
**Marinade Select is not currently available to stake to.** The SDK still covers Select for integrations serving existing positions, but do not build a new Select staking flow against it. Build against Marinade Native instead, or talk to the team.
{% endhint %}

***

### Install

```bash
npm install @marinade.finance/marinade-ts-sdk
```

```bash
yarn add @marinade.finance/marinade-ts-sdk
```

Check the package page for the current version rather than pinning one from this doc.

***

### Quickstart

```typescript
import { Marinade, MarinadeConfig } from '@marinade.finance/marinade-ts-sdk'
import { Connection } from '@solana/web3.js'

const config = new MarinadeConfig({
  connection: new Connection('https://api.mainnet-beta.solana.com'),
  publicKey: wallet.publicKey,
})
const marinade = new Marinade(config)

// Stake SOL, receive mSOL
const { transaction } = await marinade.deposit(amountLamports)
```

The SDK also exposes `liquidUnstake`, `orderUnstake`, `addLiquidity` and `removeLiquidity`, plus protocol state through `marinade.getMarinadeState()`.

For the same operations from a terminal, use [marinade-ts-cli](https://github.com/marinade-finance/marinade-ts-cli).

***

### Integration Example

An Anchor CPI integration example is available:

{% hint style="warning" %}
That example wraps deposits through the **referral program, which is currently paused**. No referral fees accrue to anyone while it is paused, including under agreements signed before the pause, and the partner boost is not in force. Use the repository as a reference for calling Marinade by CPI, but do not build a revenue-sharing integration on it without talking to the team first. For a plain integration, call the SDK directly as shown above.
{% endhint %}

***

{% hint style="info" %}
If you have questions or troubles, please join our [Discord](https://discord.com/invite/yTdH8YkYKg). Marinade contributors will be there to help you.
{% endhint %}


# Marinade Rust SDK

There is no supported standalone Rust SDK. If you are building in Rust, use one of the two routes below.

{% hint style="warning" %}
`github.com/marinade-finance/marinade-sdk` exists but was **archived (read-only) on 2026-08-28** and has had no real commits in years. Do not build against it.
{% endhint %}

### Option 1: The Shared Rust Crates

Marinade maintains its Rust client code in [marinade-common-rs-cli](https://github.com/marinade-finance/marinade-common-rs-cli). The crate you want is **`marinade-client-rs`**, which provides instruction builders and RPC state queries for the Liquid Staking program. The same repository ships `dynsigner` and `marinade-common-cli` for CLI work.

These crates back Marinade's own Rust tooling, so they track the on-chain program, but they are published for internal use first. Expect the surface to move.

***

### Option 2: Generate A Client From The IDL

Every Marinade program publishes its Anchor IDL on chain. Fetch it and generate a client with your preferred Rust codegen. See [Anchor IDL](/developers/anchor-idl) for the fetch command and the list of programs.

This is the most stable route for an external integration, because the IDL is the contract.

***

### If TypeScript Is An Option

The TypeScript SDK is the supported, documented integration path and covers more of the protocol. See [Marinade Ts/Js SDK](/developers/marinade-ts-js-sdk).

{% hint style="info" %}
If you have questions or troubles, please join our [Discord](https://discord.com/invite/yTdH8YkYKg). Marinade contributors will be there to help you.
{% endhint %}


# Anchor IDL

Marinade's programs publish their Anchor IDL on chain. Fetch one with the Anchor CLI. No Anchor workspace is needed, this reads an account.

```bash
anchor init idl
cd idl
anchor --provider.cluster mainnet \ 
       idl fetch MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD -o marinade-idl.json
```

***

## Available IDLs

Every program below serves a live on-chain IDL on mainnet-beta. Substitute the program ID into the command above.

| Program                  | Program ID                                    | On-chain IDL account                           |
| ------------------------ | --------------------------------------------- | ---------------------------------------------- |
| **Liquid Staking**       | `MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD` | `9jWC3EixD3D7ChMrrSRw3opnGHQ8YxZGJqGkzcup3tAn` |
| **Native Staking Proxy** | `mnspJQyF1KdDEs5c6YJPocYdY1esBgVQFufM2dY9oDk` | `7ByYxYesMj598eFug4AcFqYyFnC9m6SVEjyibGhmvSQq` |
| **Validator Bonds**      | `vBoNdEvzMrSai7is21XgVYik65mqtaKXuSdMBJ1xkW4` | `Du3XrzTNqhLt9gpui9LUogrLqCDrVC2HrtiNXHSJM58y` |
| **Directed Stake**       | `dstK1PDHNoKN9MdmftRzsEbXP5T1FTBiQBm1Ee3meVd` | `4vePs1gTLB2jT8cSLsMEswiAzGR2zJaLu1BfXacS3HLp` |

{% hint style="info" %}
The IDL account column is informational. You do not need it for `anchor idl fetch`, which derives the address from the program ID.
{% endhint %}

***

### Next Steps

* Full address list: [Contracts & Tokens Addresses](/developers/contract-addresses)
* A typed client instead of raw IDL: [Marinade Ts/Js SDK](/developers/marinade-ts-js-sdk)


# Bug Bounty

Marinade is dedicated to improve the security of its users. For this reason, we are holding a bug bounty program to help strengthen our protocol even more.

## Overview

Marinade runs a public bug bounty on **Immunefi** for its on-chain programs. Report a vulnerability at [immunefi.com/bug-bounty/marinade](https://immunefi.com/bug-bounty/marinade/). Immunefi handles triage, tracks your report, and is how rewards are paid.

Findings that are **not** in Marinade's smart contracts, such as the web app, the documentation site, dashboards or infrastructure, are not covered by the Immunefi bounty. See Everything Else below for where to send those.

***

### Why A Bug Bounty

Bug bounties are a common way of guaranteeing and improving the security of a protocol. If anyone discovers a bug or a loophole in our protocol, they can report it to our team and claim the associated bounty instead of abusing it.

By offering this option, we allow developers and researchers who find an exploit to be rewarded for it without causing any damage to the protocol or to the funds of our users.

Marinade's programs have been through multiple independent audits, listed on the Audits page. We believe we need to set an example in the Solana ecosystem and **always aim for more security**. This bug bounty is another way of raising our security level and a step towards this commitment.

***

### Rewards By Threat Level

Bounties are distributed according to the impact of the vulnerability, assessed using the [Immunefi Vulnerability Severity Classification System](https://immunefi.com/severity-updated/). This is a simplified 5-level scale, with separate scales for websites/apps and smart contracts/blockchains, encompassing everything from consequence of exploitation to privilege required to likelihood of a successful exploit.

**Smart contract and blockchain bounties**

| Threat level | Reward            |
| ------------ | ----------------- |
| **Critical** | Up to USD 250,000 |
| **High**     | Up to USD 15,000  |

Critical vulnerabilities are further capped at **10% of economic damage**, with the main consideration being the funds affected in addition to PR and brand considerations, at the discretion of the team.

However, there is a **minimum payout of USD 50,000** for Critical bug reports.

{% hint style="info" %}
Payouts are handled by the **Marinade Finance** team directly and are primarily denominated in USD. Payouts are made in **mSOL** and **MNDE**.
{% endhint %}

***

#### Scope Of The Bounty Program

**Assets In Scope**

The Immunefi program currently covers **one** program: [liquid-staking-program](https://github.com/marinade-finance/liquid-staking-program).

{% hint style="warning" %}
**Other on-chain programs are not yet in the formal Immunefi scope.** Native Staking Proxy, Validator Bonds and Directed Stake are live mainnet programs but are not listed as Immunefi assets. A finding in one of those does not qualify for an Immunefi-tier reward; report it the same way as a non-smart-contract finding, through Everything Else below.
{% endhint %}

**Impacts In Scope**

Only the following impacts are accepted within this bug bounty program. All other impacts are not considered as in-scope, even if they affect something in the assets in scope table.

**Critical**

* Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield
* Permanent freezing of funds
* Protocol insolvency

**High**

* Theft of unclaimed yield
* Permanent freezing of unclaimed yield
* Temporary freezing of funds, excluding DOS attacks

**Prioritized Vulnerabilities**

We are especially interested in receiving and rewarding vulnerabilities of the following types.

* Re-entrancy
* Logic errors (including authentification errors)
* Trusting trust/dependency vulnerabilities (including composability vulnerabilities)
* Oracle failure/manipulation
* Novel governance attacks
* Economic/financial attacks (including flash loan attacks)
* Congestion and scalability (including running out of gas, block stuffing and susceptibility to frontrunning)
* Consensus failures
* Cryptography problems (including signature malleability, susceptibility to replay attacks, weak randomness, weak encryption)
* Susceptibility to block timestamp manipulation
* Missing access controls / unprotected internal or debugging interfaces

**Out Of Scope & Rules**

The following vulnerabilities are **excluded** from the rewards for this bug bounty program:

* Attacks that the reporter has already exploited themselves, leading to damage
* Attacks requiring access to leaked keys/credentials
* Attacks requiring access to privileged addresses (governance, strategist)
* Incorrect data supplied by third party oracles (not to exclude oracle manipulation/flash loan attacks)
* Basic economic governance attacks (e.g. 51% attack)
* Lack of liquidity
* Best practice critiques
* Sybil attacks

The following activities are **prohibited** by this bug bounty program:

* Any testing with mainnet or public testnet contracts; all testing should be done on private testnets
* Any testing with pricing oracles or third party smart contracts
* Attempting phishing or other social engineering attacks against our employees and/or customers
* Any testing with third party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
* Any denial of service attacks
* Automated testing of services that generates significant amounts of traffic
* Public disclosure of an unpatched vulnerability in an embargoed bounty

***

#### How To Claim A Bounty

Submit through the Immunefi program: [immunefi.com/bug-bounty/marinade](https://immunefi.com/bug-bounty/marinade/).

A report we can act on quickly has:

* The affected asset, with the exact program ID, account or instruction
* Clear reproduction steps
* The impact, meaning what an attacker gains
* Any proof of concept, logs or screenshots

If you cannot demonstrate the impact, the report is not yet ready to send.

***

#### Everything Else

Issues in the web app, documentation site, dashboards or other infrastructure are **not covered by the Immunefi bounty**, which is scoped to smart contracts. The same applies to Native Staking Proxy, Validator Bonds and Directed Stake, which are not yet Immunefi assets. We still want to hear about all of these. Start a chat in the [Help Center](https://help.marinade.finance), or open a support ticket in our Discord using the invite on Official Links.

We review these ourselves, assess real-world impact, and may reward a genuine high-impact finding at our discretion. Those sit outside the published tiers and are handled case by case.

**Please send verified findings only.** Raw scanner output and AI-generated reports with no demonstrated impact are closed without a detailed response.


# Contracts & Tokens Addresses

Here is a list of the smart contracts and tokens created by Marinade as well as details on their authorities

## Contracts

#### Liquid-staking-program

Source code: <https://github.com/marinade-finance/liquid-staking-program>\
Address: `MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD`\
Main state account: `8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC`\
Stake withdraw authority (PDA): `9eG63CdHjsfhHmobHgLtESGC8GabbmRcaSpHAZrtmhco`\
Upgrade authority: [Ecosystem multisig](/marinade-protocol/security/multisig-governance) (6/13)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

#### SPL Governance Realms program (Marinade council)

Source code: <https://github.com/marinade-finance/solana-program-library>\
Address: `GovMaiHfpVPw8BAM1mbdzgmSZYDw2tdP32J2fapoQoYs`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

Marinade's [DAO/Realm on-chain](https://app.realms.today/dao/899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo) is: `899YG3yk4F66ZgbNWLHriZHTXSKk9e1kvsKEquW7L6Mo`

#### Tokadapt

Source code: <https://github.com/marinade-finance/tokadapt>\
Address: `tokdh9ZbWPxkFzqsKqeAwLDk6J6a8NBZtQanVuuENxa`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

#### Escrow-relocker (Tribeca plug-in)

Source code: Closed source\
Address: `tovt1VkTE2T4caWoeFP6a2xSFoew5mNpd7FWidyyMuk`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

#### Validator gauges

Source code: Closed source\
Address: `va12L6Z9fa5aGJ7gxtJuQZ928nySAk5UetjcGPve3Nu`\
Upgrade authority: [Marinade council ](https://app.realms.today/dao/MNDE/params)(3/5)\
Admin authority: None

#### Liquidity gauges

Source code: Closed source\
Address: `LigadctxNRkZied3WuhX525vUhDkuhXNK5DyeijeDnh`\
Upgrade authority: [Marinade council ](https://app.realms.today/dao/MNDE/params)(3/5)\
Admin authority: None

#### Liquid staking referral program

Source code: <https://github.com/marinade-finance/liquid-staking-referral-program>\
Address: `MR2LqxoSbw831bNy68utpu5n4YqBH3AzDmddkgk9LQv`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

#### Directed Stake

Source code: Closed sourced\
Address: `dstK1PDHNoKN9MdmftRzsEbXP5T1FTBiQBm1Ee3meVd`\
Main state account: `DrooToPS3MLqgZwBiK2fkAPUTUgKNV3CGb2NqFRAL4Zf`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: None

#### SPL Gov plugin: Voter Stake Registry

Source code: <https://github.com/marinade-finance/voter-stake-registry>\
Address: `VoteMBhDCqGLRgYpp9o7DGyq81KNmwjXQRAHStjtJsS`\
Main account state: `5zgEgPbWKsAAnLPjSM56ZsbLPfVM6nUzh3u45tCnm97D`\
Upgrade authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade council](https://app.realms.today/dao/MNDE/params) (3/5)

{% hint style="info" %}
Marinade also has access to Goki, Quarry and Tribeca's smart contract multisigs as their original authors left Solana. If you're using one of those products, please reach out to us so we can transfer some of the keys to you.
{% endhint %}

#### Marinade Native Staking proxy

Address: `mnspJQyF1KdDEs5c6YJPocYdY1esBgVQFufM2dY9oDk`\
Staker root account: `4TNsDg9aHCyDt5axK8aDuhgrengnDBGzyHHzKGnTiGtW`\
Marinade Max Yield - Staker authority (marks stake account is under bot control): `stWirqFCf2Uts1JBL1Jsd3r6VBWhgnpdPxCTe1MFjrq`\
Marinade Select - Staker authority: `STNi1NHDUi6Hvibvonawgze8fM83PFLeJhuGMEXyGps`\
Exit authority (marks requested exit for the stake with this auth): `ex9CfkBZZd6Nv9XdnoDmmB45ymbu4arXVk7g5pWnt3N`\
Operator: `opNS8ENpEMWdXcJUgJCsJTDp7arTXayoBEeBUg6UezP`\
Upgrade authority: [Marinade Council](https://app.realms.today/dao/MNDE/params) (3/5)\
Admin authority: [Marinade Council](https://app.realms.today/dao/MNDE/params) (3/5)

### Tokens

#### mSOL - mainnet-beta

**mSOL token**\
mSOL mint: `mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So`\
mSOL Auth( PDA): `3JLPCS1qM2zRw3Dp6V4hZnYHd4toMNPkNesXdX9tg6KM`

**Treasury**\
Reserve SOL account (PDA): `Du3Ysj1wKbxPKkuPPnvzQLQh8oMSVifs3jGZjJWXFmHN`\
Treasury mSOL account: `B1aLzaNMeFVAyQ6f3XbbUyKcH2YPHu2fqiEagmiF23VR`

**Liquidity-Pool**\
mSOL-SOL-LP mint: `LPmSozJJ8Jh69ut2WP3XmVohTjL4ipR18yiCzxrUmVj`\
Auth(PDA): `HZsepB79dnpvH6qfVgvMpS738EndHw3qSHo4Gv5WX1KA`\
mSOL leg account `7GgPYjS5Dza89wV6FpZ23kUJRG5vbQ1GM25ezspYFSoE`\
mSOL leg authority: `EyaSjUtSgo9aRD1f8LWXwdvkpDTmXAW54yoSHZRF14WL`\
SOL leg account `UefNb6z6yvArqe4cJHTXCqStRsKmWhGxnZzuHbikP5Q`

#### MNDE - mainnet-beta

MNDE Token: `MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey`

**Chef NFT collection**\
Mint authority: `5T4reQScZBDXbGRuf3WGWUVmPTCxsYCnG7HH1wUmYEhV`\
Update authority: `6vS14tTjSKdTKNgQtueTPKghT3XVxKBL55YzC5M5CPAp`

**Chef NFTs**\
Update authority: `6jG2QcwaJPFS8Y9SzgH2kfKPj6ERhLi9RVtH8kRahj4j`\
Owner program: `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`

#### mSOL - devnet

Program ID: `MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD`

**mSOL token**\
mSOL mint: `mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So`\
mSOL auth(PDA): `3JLPCS1qM2zRw3Dp6V4hZnYHd4toMNPkNesXdX9tg6KM`

**Treasury**\
Reserve SOL account (PDA): `Du3Ysj1wKbxPKkuPPnvzQLQh8oMSVifs3jGZjJWXFmHN`\
Treasury mSOL account: `8ZUcztoAEhpAeC2ixWewJKQJsSUGYSGPVAjkhDJYf5Gd`

**Liquidity-Pool**\
mSOL-SOL-LP mint: `LPmSozJJ8Jh69ut2WP3XmVohTjL4ipR18yiCzxrUmVj`\
Auth (PDA): `HZsepB79dnpvH6qfVgvMpS738EndHw3qSHo4Gv5WX1KA`\
mSOL leg account: `7GgPYjS5Dza89wV6FpZ23kUJRG5vbQ1GM25ezspYFSoE`\
SOL leg account: `UefNb6z6yvArqe4cJHTXCqStRsKmWhGxnZzuHbikP5Q`

#### MNDE - devnet

MNDE address: `MNDEFzGvMt87ueuHvVU9VcTqsAP5b3fTGPsHuuPA5ey`


# Stake to Marinade via Fireblocks

## Stake to Marinade via Fireblocks

In order to stake with Marinade Native or Marinade Liquid (mSOL) via Fireblocks, you will need:

* A Fireblocks Vault account that supports the Solana asset. See [Creating a Solana Vault](https://docs.marinade.finance/developers/stake-to-marinade-via-fireblocks#creating-a-solana-vault)
* A Transaction Authorization Policy (TAP) on Fireblocks that authorizes the "Raw" transaction type. See [Setting up the Transaction Authorization Policy](https://docs.marinade.finance/developers/stake-to-marinade-via-fireblocks#setting-up-the-transaction-authorization-policy)

#### Stake SOL on Marinade with WalletConnect

1. Go to <https://app.marinade.finance/>
2. Click on the "Connect wallet" button on the top-right
3. Select "WalletConnect"
4. Scan the QR code using your Fireblocks Mobile App
5. Select the vault that you want to stake from. The vault has to support the Solana asset.
6. Choose a Default fee between "Medium" and "Fast"
7. The connection to Marinade's dApp is now initiated and the SOL balance in your Fireblocks vault should reflect on Marinade's dApp
8. Click Stake SOL to stake with Marinade Native, or open the Earn tab and choose the Marinade Liquid banner to receive mSOL.
9. Input the amount of SOL that you want to stake with Marinade and click on "Stake". For Marinade Native, stake at least 1.0046 SOL and leave at least 0.03 SOL in the vault for transaction and priority fees.
10. Confirm the transaction using your Fireblocks Mobile App.
11. Wait for the transaction to go through the blockchain and get confirmed.
12. Your SOL should now be successfully staked on Marinade.

If you want to unstake, follow the same process as above and just select "Unstake" on one of your active positions on Marinade.

#### Setting up the Transaction Authorization Policy

* Go to Fireblocks settings

<div data-full-width="false"><figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2Fn7bFNTHWjaCRIsCPtLsu%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.02.57.png?alt=media&#x26;token=efdb89a2-72c0-4530-8fd7-2ab4d322ea82" alt="" width="375"><figcaption></figcaption></figure></div>

* Go to "Transaction Policy"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FX70NXVN5lZ2tMV5aiRDz%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.05.56.png?alt=media&#x26;token=8bd8dcc3-7cfe-4773-86ba-f752385fcfe1" alt="" width="375"><figcaption></figcaption></figure>

* Click on "Edit policy"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2Fk4B3GadDd9CGCZMfFqM7%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.07.57.png?alt=media&#x26;token=3a1f0aca-0034-4b6f-a8a2-dd45229f06ce" alt="" width="375"><figcaption></figcaption></figure>

* Click on the "+" icon to add a new transaction policy

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FjkblpGn6Cjq2tGg11BSd%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.10.24.png?alt=media&#x26;token=c38e9c96-4486-4c6f-b8ef-23fa7fb94933" alt="" width="375"><figcaption></figcaption></figure>

* Create a transaction policy for the "Raw" transaction type. Input the desired authorized sources, initiators and signers and select "Allow" (if the transaction does not need to be approved by a designated signer) or "Approved by" (if you want to set a designated signer that will approve the transactions). Click on "Add rule" once you are satisfied with the set up.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FrhFP0OtDZIH0lHv3O0xt%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.13.32.png?alt=media&#x26;token=1aa45c5a-8c79-4fdd-81b7-19f01afbfd37" alt="" width="375"><figcaption></figcaption></figure>

* Click on "Publish changes", and then "Publish policy" on the modal that follows

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FxZmMlj9Ojkht8HlMvZZ5%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.19.35.png?alt=media&#x26;token=9a27748c-2c07-4401-88db-708b77fc43a5" alt=""><figcaption></figcaption></figure>

* Open your Fireblocks Mobile App and click on "View" to see the Policy Change Request

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FDo1puKoNUaefOMcatLA6%2FScreenshot_20250203-132105.png?alt=media&#x26;token=cd866709-3382-4e80-ae97-4d102dd99bf7" alt="" width="188"><figcaption></figcaption></figure>

* You will be prompted to approve the the Policy Change Request on your Fireblocks console.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FgJM6toLyfRVwAwhB8ytQ%2FScreenshot_20250203-132115.png?alt=media&#x26;token=19f2642f-ea8b-42ea-a1d8-9432886f5112" alt="" width="188"><figcaption></figcaption></figure>

* Go to your Fireblocks console, open the Transaction policy page and click on "Review policy changes"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FbJX3HD5EclA57Gc3LtQC%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.22.29.png?alt=media&#x26;token=fac42def-b127-47e7-be17-908944b09ca3" alt=""><figcaption></figcaption></figure>

* Click on "Approve changes"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2Fpol9YpNGLwH6SX1gJ9IN%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.23.40.png?alt=media&#x26;token=44489c76-fcae-4b0c-a2b5-dda8bd7525f5" alt="" width="375"><figcaption></figcaption></figure>

* Open your Fireblocks Mobile App and click on "View"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FgWdBzSgfnzJjWX1RT0VR%2FScreenshot_20250203-132422.png?alt=media&#x26;token=58199923-7f24-447d-b37a-9762695d000e" alt="" width="188"><figcaption></figcaption></figure>

* Click on "Approve" and confirm the action with your PIN and fingerprint.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F92duo7oXQBsSTTfBe2Zr%2FScreenshot_20250203-132431.png?alt=media&#x26;token=f92588af-df1f-4f45-8f91-b4690cab2197" alt="" width="188"><figcaption></figcaption></figure>

* Your Transaction Authorization Policy is now updated. You can now stake your SOL with Marinade using WalletConnect.

#### Creating a Solana vault

* Go to the Fireblocks console and in the left menu, click on "Accounts"
* Click on "Create Vault Account"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FAPrvaUhN05mwh7jc9ZyS%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.42.54.png?alt=media&#x26;token=b07d4a42-442d-49be-96b2-54181b1e57e9" alt="" width="563"><figcaption></figcaption></figure>

* Name your Vault and proceed with the creation

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2Fb5kvC0JMaAB3ibfPwaRU%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.44.47.png?alt=media&#x26;token=e050a337-5ad5-431e-b701-61db02e89f7c" alt="" width="375"><figcaption></figcaption></figure>

* Click on "Create wallet"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FDbXm8OLuLe7hFataVlqu%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.46.27.png?alt=media&#x26;token=ae65291c-ed1f-4c75-a11d-18840302493d" alt="" width="375"><figcaption></figcaption></figure>

* Input "SOL" and select the SOL token. Click on "Create Wallet"

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FzZ3gYCMt1x3Ieb1A8YZj%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.47.14.png?alt=media&#x26;token=c864270d-9839-4c56-8f24-1b1fc9d4a24a" alt="" width="375"><figcaption></figcaption></figure>

* Your vault now has a Solana address that can be used to deposit funds. Find it by clicking on the "Show deposit addresses" button.

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FH4ew5tToDZ1AvXolWNxW%2FCapture%20d%E2%80%99e%CC%81cran%202025-02-03%20a%CC%80%2013.48.13.png?alt=media&#x26;token=7edd6fdb-86d1-45d5-bdbf-8e36efe886e0" alt="" width="563"><figcaption></figcaption></figure>

* Fund the newly created wallet by sending SOL to that deposit address. Once the SOL is received, you can stake with Marinade using WalletConnect. Make sure your Transaction Authorization Policy is set up.


# Become our Partner

Marinade's mission is to empower users with the best tools to stake, secure and participate in the Solana ecosystem. We invite DeFi protocols, NFT projects and marketplaces who share a similar vision to join us.

Marinade's mSOL collateral token is **permissionless**, which means any project can integrate and utilize it for their own benefit. Projects may also collaborate with Marinade on the installation and promotion of the shared value of mSOL and greater benefit to Solana.

### How to team up with Marinade?

Marinade created the mSOL token in a way to be easy to integrate no matter the type of project throughout the Solana ecosystem. It can be added to their project and provide the safest liquid staking solution on Solana with incentives aligned for all participants. Projects can simply integrate mSOL, a permissionless token, without assistance from Marinade. Or, they can use mSOL as a minting or payment option or stake their treasury to Marinade. Creative, long-lasting partnerships benefiting both parties and Solana can also be explored. To get started, please fill out [this form](https://tally.so/r/wzLj1m) and our team will be in contact soon.

* **Integrate mSOL in your protocol**. Marinade ranks among the highest TVLs on Solana that can engage with DeFi protocols. By integrating mSOL, your project offers holders an easy on-ramp to your service.
* **Stake your treasury to Marinade**. If your project generates revenues in SOL, you have the possibility to hold a part of your treasury in mSOL instead of SOL, allowing the treasury to passively earn staking rewards and engage in yield farming activities in DeFi.
* **Accept mSOL as a payment option**. mSOL is a standard SPL token, so any mint or checkout that supports SPL token payments can accept it. See the Marinade Ts/Js SDK to integrate, or reach out to us.
* **Marinade Recipes**. Your users stake SOL and receive their rewards in a token you choose, with the principal staying in SOL. Partner-funded incentive economics are supported here today. Read more about Marinade Recipes.
* **Custodian and institutional integrations**. If you route institutional flow through a custodian such as Fireblocks, BitGo, Anchorage, Copper or Komainu, we support the technical integration into Marinade Native. Commercial terms are negotiated case by case. **Marinade Select is not currently available to stake to**, so it is not an option for new flow; existing Select positions are unaffected.

{% hint style="warning" %}
**The Marinade referral program is currently paused.** While it is paused, partners **do not earn referral fees on any Marinade product**, whether mSOL, Marinade Native or Marinade Select, and referred users receive no APY boost. That applies to every partner, **including those holding an agreement signed before the pause**. The program is paused rather than retired and a relaunch is expected, but relaunch terms are not yet defined. See Marinade Referral Program for the detail, and use the partnership form above for anything you were planning to run through it.
{% endhint %}

{% hint style="info" %}
Please know that Marinade is willing to help and bring support to projects that express the desire to integrate into our ecosystem. If you require assistance in order to make this idea a reality, please contact us and we will do our best to help.\
Nonetheless, mSOL is **permissionless** and can be integrated without contacting us or formalizing any agreement. **Simply integrating mSOL in a project is by no means an endorsement of its security or credibility by Marinade**.
{% endhint %}

***

### The mSOL Advantage

By choosing to integrate and utilize mSOL, a project gains significant advantages. Collaborating with Marinade opens the opportunity for additional benefits. In order to be eligible for these added value enhancements, Marinade reserves the right to request additional information and perform due diligence about your project in order to confirm both parties share similar values.

* Exposure from shared marketing.
* Make your project accessible to Marinade community (and its TVL).
* Differentiate from other projects by actively supporting decentralization.
* Integrate mSOL easily with the tools we provide without adding more work.

There are also specific advantages related to the nature of your project or of the mSOL integration.\
\
**If you integrate mSOL**:

* Help secure and decentralize Solana. The more SOL staked using Marinade's stake distribution and decentralization rules, the more secure the network is for all the participants.
* Gain access to liquid capital designed to explore DeFi protocols across Solana.
* Receive the best collateral available, increasing in price against SOL each epoch.
* Join the conversation in Marinade DAO: where the ecosystem and Solana users meet the security layer.

**If you integrate mSOL staking/unstaking**:

* Give your users a chance to jump in and out of mSOL and earn APY on their SOL holdings.
* Help secure and decentralize Solana.
* Offer staking directly inside your own product, without sending users elsewhere.

**If you stake your treasury in mSOL:**

* Earn staking rewards passively and make your treasury grow each epoch.
* Get mSOL in return that you can use in DeFi, unlocking investment strategies for your treasury.
* Split your stake across Marinade's full validator set, reducing the risk of a single-validator failure making you miss out on significant rewards. The current set is visible in the [validator explorer](https://app.marinade.finance/explore/).
* Actively participate to the decentralization of Solana.

***

### Best practices

If you are a project ambassador contacting us, you can use [this form](https://tally.so/r/wzLj1m) to introduce your project. Once contact is established, we may need information such as:

* A brief introduction to your project and the team behind it. If your team is not doxxed, please let us know in this introduction.
* An overview of the relevant stats that we may need.
* A link to your audits if there are some.
* A link to your GitHub repo.
* A list of contacts (Telegram, Discord, etc.) to join you.

***

### Marinade partnership process

Marinade is always eager to partner with projects that share their vision of a secure and decentralized Solana that empowers users to unlock the potential of DeFi. Depending on your project, integration of mSOL may be very simple or require more collaboration with the Marinade team.

Here is an example of what our typical setup process looks like. This is not set in stone and will be adapted to the nature of the partnership and the different needs, but it allows a first overview of the process.

1. **First contact** - We usually regroup all information needed and set up a meeting between our two teams.
2. **Discovery call** - First call to get to know each other, introduce the respective projects, and have a sense of what the partnership might look like.
3. **Mutual proposal validation** - Both teams agree on the terms of the partnership.
4. **Integration/Implementation** - Marinade offers the assistance needed in order to smoothly integrate with your project.
5. **Marketing call** - Both teams agree on how and when to announce the partnership and the different news.
6. **Public launch** - Launch is coordinated and announced to respective channels.
7. **Follow-up and monitoring of the partnership** - Parties share and analyze community sentiment and metrics and refine if needed.

{% hint style="info" %}
Reminder: use [this form](https://tally.so/r/wzLj1m) to get in contact with our Partnerships team. It is the only official intake route. Marinade will never arrange a partnership through an unsolicited direct message.
{% endhint %}


# Marinade Press Kit

Please find official Marinade imagery below for your use. For additional info or media inquiries, contact press\@marinade.finance

## Marinade Logos

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FQY97S6SquX7DNFeMTjVk%2FLockup-banner.png?alt=media&amp;token=e1013746-c611-4a1e-a8df-e46b199eaeaa" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F7kjf9qaB2prGWOT0C851%2FMarinade-black.jpg?alt=media&amp;token=73212f16-8e8b-410a-862e-5dd6c2c5f80b" alt=""><figcaption></figcaption></figure>

<div><figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FU57YPPI5CzQFLz5fLDPj%2FMarinade-symbol-black.png?alt=media&amp;token=061c771d-9875-4cdb-9c64-ed60fbbf4c2a" alt=""><figcaption></figcaption></figure> <figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F2Rkin2QaERJtn554j1dO%2FMarinade-symbol-white.png?alt=media&amp;token=625ab53e-8faf-48f6-9b48-8cb5060ee5b8" alt=""><figcaption></figcaption></figure> <figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FV9pYZJUcGJ6r2VKxGJvM%2FSquare-symbol-dark.png?alt=media&amp;token=553ba972-eff7-425a-96fb-17d05e863261" alt=""><figcaption></figcaption></figure> <figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FbqjvPucitt0Jm6dX8LP9%2FSquare-symbol-light.png?alt=media&amp;token=42c1283c-0b18-47a9-9a1c-a708e84d0a7d" alt=""><figcaption></figcaption></figure></div>

{% file src="/files/K96gXnGyWJwSTZzQxVwh" %}

## Token Logos

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FnClg7nXeO1Bwpi2IymQY%2FMNDE.png?alt=media&amp;token=7ac16f64-668c-4b84-85a3-dd801552e031" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FhgVb1Qdu49Mxwjp3Szkd%2FmSOL.png?alt=media&amp;token=1479b4d0-502c-459d-8741-6b170e47c345" alt="" width="338"><figcaption></figcaption></figure>

<figure><img src="https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2F6BYBjuTu1P2qMrttQFFw%2FmSOL-SOL%20LP.png?alt=media&amp;token=0573c029-35ff-4aeb-b5be-f0eb587efebd" alt="" width="340"><figcaption></figcaption></figure>

{% file src="/files/v6IKZElulSs5grJzWTzM" %}

## Fonts

Here are the main fonts used on Marinade:&#x20;

{% file src="/files/ZyqprxEWRRUL2TzlLe4d" %}

## Illustrations

{% file src="/files/MxUS7HfU5q3ElfTSY754" %}

## View real-time statistics about Marinade

View Marinade's DAO treasury and votes on [Realms](https://app.realms.today/dao/MNDE).

You can use this [dashboard ](https://stats.marinade.finance/d/sqUQd1Onk/marinade-kpi-dashboard?orgId=1\&refresh=1m)to get real-time data on Marinade.

![](https://2385969780-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHvhBFBu5z7MIlkYpgMXs%2Fuploads%2FTjvXSrzd7yxhRnuLaXY3%2Fimage.png?alt=media\&token=7f0bf578-3d3e-4350-8f67-10ddb92199f2)

## Download Our Brand Book

{% file src="/files/QYeRtMyHdg8URnVZwZ28" %}


# Marinade Referral Program

Earn rewards by supporting Marinade’s mission to decentralize Solana. Marinade shares fees with both the referring partner and the staker, creating a win-win incentive.

{% hint style="danger" %}
**The Marinade Referral Program is paused.** It has been dormant since **8 May 2026**. While it is paused, partners **do not earn referral fees on any Marinade product**, whether mSOL, Marinade Native or Marinade Select, and referred users receive **no APY boost**. This applies to **every partner, including those holding a referral agreement signed before the pause**. No partner fees are being paid to anyone. There is no referral dashboard and no referral page in the app.

The program is **paused, not retired**. A relaunch is expected, but **relaunch terms are not defined**, so nothing described below is a commitment.
{% endhint %}

### What Is Open Right Now

If you are a partner looking to work with Marinade today, these pathways are live and are handled case by case by the Partnerships team:

* **Marinade Recipes.** Partner-funded incentive economics, where your users stake SOL and receive rewards in a token you choose. Marinade provides distribution and staking rails rather than a revenue share.
* **DAT and ETF exclusive relationships.** Commercial terms are per deal and sales-mediated. There is no published rate card.
* **Custodian integrations.** Routing institutional flow into Marinade Native through Fireblocks, BitGo, Anchorage, Copper or Komainu. The technical integration pathway is supported; any commercial terms are negotiated case by case by Partnerships and Legal. **Marinade Select is not currently available to stake to**, so it is not a destination for new flow; existing Select positions are unaffected.

To start a conversation, use the [**Marinade Partnerships form**](https://tally.so/r/wzLj1m).

{% hint style="warning" %}
**Marinade will never ask you to arrange a partnership or a referral code through a direct message on X, Telegram or Discord.** The Partnerships form linked above is the only official intake route. Anyone offering you a Marinade referral code or a revenue share over DM is impersonating Marinade.
{% endhint %}

***

### Reference: How The Program Worked Before The Pause

Everything in this section is **historical**. It is kept so that existing partners can understand past arrangements and so that relaunch design has a starting point. **None of it is in force, and relaunch terms may differ.**

#### Getting A Referral Code

Codes were **not self-serve**. A partner was approved and onboarded manually by the Partnerships team, which also served as the control preventing end users from referring themselves. There was no on-chain self-referral check.

#### Attribution

Marinade ran **two architecturally distinct referral systems**.

<table><thead><tr><th>System</th><th>Attribution model</th><th width="126.800048828125">Partial referrals</th><th>Binding</th></tr></thead><tbody><tr><td><strong>Campaign referral</strong> (MNDE seasons)</td><td>Per deposit. A wallet's stake could be attributed across several campaigns at once.</td><td>Yes</td><td>Not permanent</td></tr><tr><td><strong>Custodian referral</strong> (white label and institutional)</td><td>Per wallet, first touch.</td><td>No</td><td><strong>Permanent.</strong> The first referrer to onboard a wallet was locked in for all subsequent Native deposits, with no mechanism to switch.</td></tr></tbody></table>

For Marinade Native, a visitor arrived with a `?r=<refcode>` URL parameter, which was stored in a 30-day cookie and passed through the SDK on the first stake. The code was an **arbitrary string** issued by Partnerships, not a Solana public key and not a transaction memo. Attribution happened at transaction-build time, through the referral API.

For mSOL, an on-chain wrapper program recorded per-partner metrics against a `ReferralState` account while forwarding deposits and instant unstakes to the core liquid staking program by CPI.

<table><thead><tr><th width="267.20001220703125">Role</th><th>Address</th></tr></thead><tbody><tr><td>mSOL referral wrapper program</td><td><code>MR2LqxoSbw831bNy68utpu5n4YqBH3AzDmddkgk9LQv</code></td></tr><tr><td>Core liquid staking program</td><td><code>MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD</code></td></tr></tbody></table>

Both programs remain deployed. **No partner rewards accrue through them while the program is paused.**

#### Reward Split And Payout

* **Split:** 50/50 between referrer and referred user. Marinade allocated roughly **20% of its take rate** on the referred user to the referral pool, then split that pool equally.
* **Advertised user boost:** the pre-pause Referral Program Terms advertised an additional **+0.125% APY to the referred user**. This was a referred-user boost, not a rate paid to both sides, and it is **not in force**.
* **Payout method:** rewards were delivered as **additional SOL staked into the referrer's Marinade Native position**. They were not an epoch airdrop, not a SOL transfer and not mSOL.
* **Operations:** distribution and analytics were run **manually by Partnerships and Ops using spreadsheet tracking**. There was **never a referral dashboard**.
* **Terms page:** the Referral Program Terms were published at `marinade.finance/referral-terms`. **That page no longer exists**, confirmed 6 August 2026.

***

### For Developers

The referral SDK surface still exists in the [marinade-ts-sdk](https://github.com/marinade-finance/marinade-ts-sdk), and the referral services remain deployed so the program can be brought back. **Integrating the SDK today does not earn referral fees**, because no partner fees are paid while the program is paused. Build against it only if you are preparing for a relaunch, and confirm terms with Partnerships before relying on any revenue from it.


