---
title: Thirty-Day Moving Average ICP/XDR Conversion
slug: thirty-day-moving-average
description: How the Cycles Minting Canister computes the 30-day moving average ICP/XDR exchange rate that converts XDR-denominated node provider rewards into ICP at minting time.
tags:
  - node-provider
  - rewards
  - economics
date: 2026-05-04
related:
  - node-provider-remuneration
  - reward-configuration
  - node-provider-documentation
---

Node provider rewards are denominated in **XDR** &mdash; the IMF's
Special Drawing Rights basket &mdash; but paid in ICP. The conversion
at minting time uses a **30-day moving average** of the ICP/XDR
exchange rate, computed inside the Cycles Minting Canister (CMC),
which is part of the Network Nervous System (NNS).

This entry describes how the moving average is sampled and computed,
where the source data comes from, and how to verify the current
value yourself. For the rate cards being converted, see
[Node Provider Remuneration](/wiki/node-provider-remuneration/).

## Where the data comes from

The CMC pulls the live ICP/XDR rate from the network's **exchange
rate canister** &mdash; an on-chain price oracle &mdash; on a fixed
cadence:

- **Sampling frequency:** every 5 minutes.
- **Source:** the exchange rate canister.
- **Storage:** start-of-day rates are recorded in UTC and retained
  for at least 30 days.

## How the average is computed

At each conversion point, the CMC takes the **start-of-day rates for
the past 30 days** and averages them. The full implementation is in
the CMC source code on GitHub and can be audited directly.

Because the average is over start-of-day rates rather than the live
price, the conversion is insulated from short-term volatility on any
given trading day &mdash; a short price spike does not propagate
into the rewards calculation unless it is sustained.

## Where to read the current value

- The
  [Internet Computer Dashboard](https://dashboard.internetcomputer.org/)
  shows the current and historical conversion rate under the
  *Network Overview > Conversion Rate* chart.
- The CMC's own metrics endpoint exposes both the current rate and
  the 30-day average with timestamps:
  [rkp4c-7iaaa-aaaaa-aaaca-cai.raw.icp0.io/metrics](https://rkp4c-7iaaa-aaaaa-aaaca-cai.raw.icp0.io/metrics).

## When the conversion happens

Node provider rewards are minted every **2,629,700 seconds**
(one-twelfth of a year). At each minting event, the CMC reads the
current 30-day moving average and uses it to convert the
XDR-denominated reward into ICP, which is then transferred to the
principal registered against each provider.

The next minting date is published at
[next-rewards-gnj.caffeine.xyz](https://next-rewards-gnj.caffeine.xyz/).

## Related

- [Node Provider Remuneration](/wiki/node-provider-remuneration/) &mdash; the XDR rate cards this average converts to ICP.
- [Reward Configuration Guide](/wiki/reward-configuration/) &mdash; the registration step that lets a node be paid at all.
- [Performance-based Rewards](/wiki/performance-based-rewards/) &mdash; the multiplier applied before the XDR-to-ICP conversion.
