> For the complete documentation index, see [llms.txt](https://docs.primestaking.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.primestaking.xyz/products/xdc-liquid-staking/xdc-staking-rewards.md).

# How Rewards Work (NAV / share price)

PrimeStaking V3 is a fully on-chain, ERC-4626 staking vault. Rewards are not paid through a manual `claim` flow. They are embedded directly in the **psXDC share price**. This page explains how the rate accrues and how the NFT boost layer sits on top.

***

## Two layers of yield

```
                base yield (~5.5%)               boost slice (up to ~1.5%)
                       │                                  │
                       ▼                                  ▼
   shares × NAV(t) appreciation     +     Synthetix-style accumulator
   (every psXDC holder gets this)         (only XDC NFT holders get this)
```

| Layer         | Where it lives                             | Who earns it                                        | How you receive it                                                  |
| ------------- | ------------------------------------------ | --------------------------------------------------- | ------------------------------------------------------------------- |
| **Base NAV**  | `PrimeStakedXDC_V3_2` vault share price    | Every psXDC holder                                  | Automatic: share price rises as validator rewards accrue. No claim. |
| **NFT Boost** | `XdcNftStakingVault` Synthetix accumulator | Only NFTs that have psXDC shares staked inside them | Claimed from the NFT detail page in the app.                        |

***

## Base layer: share-price growth

When XDC validator rewards flow back into the vault, `totalAssets()` increases while the total share supply stays the same. The vault's exchange rate (`totalAssets / totalShares`) goes up, so every psXDC share becomes worth more XDC.

{% hint style="info" %}
**V3.2 permanent-ledger model.** In V3.2 the operations manager credits rewards through a dedicated reward lane (`distributeRewards`), which raises the share price for every holder. Rewards accrue **at any backing level** - there is no "fully backed" gate. An optional, hard-capped protocol fee (0% by default, max 20%) can be skimmed per distribution. The share price only ever moves up through this lane; there is no code path that writes it down outside of a rate-limited, risk-manager-only validator-loss report.
{% endhint %}

| Aspect               | Detail                                                                                                                                                    |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Target APY           | \~5.5%                                                                                                                                                    |
| Mechanism            | Exchange rate appreciation                                                                                                                                |
| When you receive it  | The rate **steps up when the XDC Network pays masternode rewards into the vault** — typically the first days of each month, on the network's own schedule |
| User action required | None. There is no "claim rewards" button                                                                                                                  |

{% hint style="warning" %}
**A flat exchange rate between payouts is normal.** The XDC Network pays masternode rewards roughly **once a month** (usually within the first days of the month), not block-by-block. Between those payments the psXDC rate stays flat — that is the network's payment cadence, not missing rewards. The \~5.5% APY is the annualized result of those monthly steps.

Immediately after a migration or while masternodes are in the network's standby/proposal cycle, the first step-up lands on the **next** monthly payment run after the nodes are active.
{% endhint %}

**Example.** Stake 1,000 XDC when the exchange rate is `1.00`. You receive 1,000 psXDC shares. Six months later the rate is `1.025`. You burn your 1,000 shares and the vault returns **1,025 XDC**. Your 25 XDC of yield was inside the price the whole time.

This is the same model used by Aave aTokens, Compound cTokens, and Lido wstETH.

***

## NFT boost: additional slice for stakers

XDC NFTs stack a second yield on top of the base NAV. The protocol's [`XdcNftBoostHarvester`](/products/xdc-staking-nfts/boost-harvester.md) periodically pushes XDC into the NFT vault via `notifyBoost`. That XDC is converted to psXDC v3 shares inside the vault and parked as `boostReserve`. A Synthetix-style accumulator distributes the reserve to staked NFTs in proportion to their **weight**:

```
weight = stakedShares × (rarityMultiplier + level + lockBonus)
```

| Component          | Effect on weight                                                                                                                                                 |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stakedShares`     | More psXDC staked inside the NFT → bigger slice                                                                                                                  |
| `rarityMultiplier` | Plentiful (lowest) → Handcrafted (highest); set at mint, immutable                                                                                               |
| `level`            | Increases when the NFT levels up via merge                                                                                                                       |
| `lockBonus`        | Added when the NFT is locked, sized by the chosen lock tier (30/90/180/365 days). **Ends automatically when the lock expires** and can be renewed by re-locking. |

When you `claim` from an NFT, the accumulator settles your pending boost and pays it out in XDC.

| Aspect               | Detail                                                                                                                                              |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Target APR band      | \~0.25% (Plentiful unlocked) → \~1.5% (Handcrafted locked)                                                                                          |
| Mechanism            | `notifyBoost(x)` increments `rewardPerWeightStored`; each NFT's `earned = info.shares × (rewardPerWeightStored − info.rewardIndex) × weight / 1e18` |
| When you receive it  | When you call `claim` on the NFT                                                                                                                    |
| User action required | Yes: claim from the NFT detail page, or it settles automatically on any other state-changing action (stake more, lock, merge, withdraw)             |

The boost cadence depends on how often the harvester feeds the accumulator; see [Boost Harvester (technical)](/products/xdc-staking-nfts/boost-harvester.md) for the full picture.

***

## Combined targets

| Position                     | Base NAV (floor) | + Boost slice (when flowing) | Combined target         |
| ---------------------------- | ---------------- | ---------------------------- | ----------------------- |
| Plain psXDC (no NFT)         | \~5.5%           | None                         | **\~5.5%**              |
| psXDC inside an unlocked NFT | **\~5.5%**       | \~0.25%                      | **\~5.5% → \~5.75%**    |
| psXDC inside a locked NFT    | **\~5.5%**       | up to \~1.5%                 | **\~5.5% → up to \~7%** |

{% hint style="info" %}
The floor for every staked psXDC (whether you hold it directly, in an unlocked NFT, or in a locked NFT) is the **base \~5.5%**. That layer is automatic. The boost slice (`~0.25%` → `~1.5%`) is an additional stream that depends on harvester cadence and your NFT's weight; when the stream is paused or sparse, you continue to earn the base.
{% endhint %}

The exact boost slice depends on your NFT's rarity, level, and lock status relative to the rest of the vault, and on how much XDC the harvester has fed recently. The vault publishes `BoostNotified` events so the UI can show a trailing 30-day boost APR alongside the static targets.

***

## Why no claim button for liquid staking

The V2 product distributed rewards by having the owner periodically call `notifyRewardAmount` and required users to call `claim` to collect their share. V3 removes both:

* **No `notifyRewardAmount`**: validator rewards flow directly into the vault, so the exchange rate updates automatically.
* **No `claim`**: your reward is *already inside the share*. When you redeem the share, you receive both the principal and the accrued reward in one transaction.

The boost layer keeps its `claim` flow because it is a **separate** XDC stream layered on top of the share, not an internal accrual.

→ [Understanding Share Price](/products/xdc-liquid-staking/staking-guide/how-to-claim-rewards.md) → [V2 vs V3: What Changed](/products/xdc-liquid-staking/v2-vs-v3.md)
