# Bond Risk Reduction Mechanism

When a validator's bond falls below the minimum required coverage for their Marinade stake allocation, Marinade will undelegate a portion of their stake so that the remaining stake is still covered by their bond, and charge 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](https://docs.marinade.finance/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:

| Aspect                           | Bid Reduction Penalty                                       | Bond Risk Reduction Mechanism                                      |
| -------------------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------ |
| **Trigger**                      | Validator lowers their static bid versus the previous epoch | Validator's claimable bond is too small for the stake they hold    |
| **What it measures**             | Whether past bids are being honoured                        | Whether the bond can cover future obligations                      |
| **Action on stake**              | Stake may be reallocated away (separate rebalancing step)   | Stake is directly undelegated in the same epoch the fee is charged |
| **Can both apply in one epoch?** | Yes, they are independent checks                            | Yes, they are independent checks                                   |

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 claimable bond covers less than 5 epochs of revenue on the current Marinade stake.

The mechanism triggers when a validator's bond balance falls below the minimum required to cover their current Marinade stake allocation for at least 5 epochs of revenue.

A key point for validators: `expectedMaxEffBidPmpe` can never exceed the validator's own bid. Maintaining a bond that covers your own bid for the required number of epochs is always sufficient to avoid the fee. If your bond covers less than that, you 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.

To receive new stake from Marinade, the bond must cover 13 epochs. 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 your own bid for 13 epochs across your current stake allocation. Since `expectedMaxEffBidPmpe` can never exceed your own bid, this is always a safe and sufficient target.

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) will 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 a fee is due this epoch. 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 your tooling.
{% 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 current bond balance in SOL. Pending withdrawals count fully against this. Only the **claimable** portion supports coverage.
* **marinadeStake:** The validator's current Marinade stake allocation in SOL.
* **expectedMaxEffBidPmpe:** The maximum effective bid in PMPE 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):

```
minBondCoef = (onchainDistributedPmpe + 5 x expectedMaxEffBidPmpe) / 1000
```

The ideal coverage coefficient (13 epochs):

```
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="181">Parameter</th><th width="119.79998779296875">Production</th><th>Description</th></tr></thead><tbody><tr><td>minBondBalanceSol</td><td>7 SOL</td><td>Minimum bond balance before complete undelegation occurs</td></tr><tr><td>idealBondEpochs</td><td>12</td><td>Target bond coverage in epochs (13 epochs total)</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.marinade.finance/marinade-protocol/protocol-overview/stake-auction-market/bond-risk-reduction-mechanism.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
