# MGP-17: Adding a CELO/XAUt feed and CELO/USA₮ equivalent mapping

**URL:** <https://forum.mento.org/t/mgp-17-adding-a-celo-xaut-feed-and-celo-usa-equivalent-mapping/120>\
**Category:** Governance\
**Created:** [May 13, 2026, 7:54am UTC](https://forum.mento.org/t/mgp-17-adding-a-celo-xaut-feed-and-celo-usa-equivalent-mapping/120 "2026-05-13T07:54:00Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![pahor167](https://avatars.discourse-cdn.com/v4/letter/p/aeb1de/32.png) [@pahor167](https://forum.mento.org/u/pahor167)\
**Post date:** [May 13, 2026, 7:54am UTC](https://forum.mento.org/t/mgp-17-adding-a-celo-xaut-feed-and-celo-usa-equivalent-mapping/120/1 "2026-05-13T07:54:00Z")

</div>

# MGP-17: Adding a CELO/XAUt feed and CELO/USA₮ equivalent mapping to support XAUt0 and USA₮ as gas currencies

**Authors** : Pavel Hornak (@pahor167)

## Overview

This proposal performs the Mento-governance steps needed to support two new gas currencies on Celo:

1. **XAUt0 (Tether Gold)** — whitelists a `ChainlinkRelayer` contract that transmits a derived CELO/XAUt rate (Chainlink CELO/USD × inverse of Redstone XAUt/USDT) to `SortedOracles`, then maps the XAUt0 FeeWrapper to that rate feed.
2. **USA₮ (Tether’s regulated USD stablecoin)** — maps the USA₮ FeeCurrencyWrapper to the existing CELO/cUSD rate via `setEquivalentToken`, identical to the historical CELO/cUSD mapping used by USDT (CGP-128). No new relayer is needed because USA₮ is a USD-pegged stablecoin and the CELO/cUSD rate is already published on `SortedOracles`.

The rate feed involved for XAUt0 is **CELO/XAUt** , with a relayer contract already deployed. Details of the rate feed and corresponding relayer contract are provided below:

**RateFeed** : `relayed:CELOXAUt`

**RateFeedId** : `0xb1C735FFd1b8F01316382E72bcc17D19493eB009`

**Relayer Contract** : `0xEd2e6f192aD96B1676C6167aB27949179e08CBD1`

The USA₮ FeeCurrencyWrapper involved is:

**USA₮ FeeCurrencyWrapper** : `0x0357EE22278c922e1D36cFe6b899269b161880C4` (implementation `0xACc6EFBE554397b741baadecf0120780b858f5f4`, deployed by Tether)

This proposal is a requirement, and must pass before executing, **CGP-239 Adding XAUt0 as gas currency** and **CGP-240 Enable USA₮ as gas currency**. Historically the `SortedOracles` contract was owned by Celo Governance, but since CGP-156 passed, it is owned by Mento Governance.

## Background — Why XAUt0?

XAUt0 is Tether’s omnichain version of Tether Gold (XAUT), where each token represents ownership of one troy fine ounce of London Good Delivery gold held in Swiss vaults. It launched on Celo via USDT0 in September 2025. The XAUt0 Token Adapter (FeeWrapper) is deployed at `0x857BF24e29da0773687E804a743c2E421a394C16`.

Enabling XAUt0 as a gas currency lets holders pay transaction fees directly in XAUt0, removing onboarding friction for the growing community of gold-backed asset holders on Celo. This follows the precedent set by WETH (CGP-203 / MGP-9), which introduced the first non-stablecoin volatile asset as a gas currency.

## Background — Why USA₮?

USA₮ is Tether’s US-regulated digital dollar, deployed on Celo via the same `FeeCurrencyWrapper` infrastructure used by USDT0 and XAUt0. Enabling USA₮ as a gas currency lets holders pay transaction fees directly in USA₮ — the same UX that already exists for USDT (CGP-128) and USDC (CGP-127) — without acquiring a separate gas token.

Because USA₮ is a USD-pegged stablecoin trading at ≈ $1, no new oracle relayer is needed. Mapping the USA₮ FeeCurrencyWrapper to cUSD via `SortedOracles.setEquivalentToken` makes the protocol reuse the existing CELO/cUSD median rate as the CELO/USA₮ rate — identical to the configuration USDT has had since CGP-128 (April 2024).

## Relayer Design

The deployed relayer is **byte-identical** to the WETH relayer (which has been live in production since March 2025) — same `mento-core` v2.5.0 source, same Solc 0.8.18, same optimizer settings (enabled, 10,000 runs). The only differences are the constructor immutables (rate feed ID, aggregator addresses, description):

| Property | Value |
| --- | --- |
| Source code | `mento-core` v2.5.0 — `contracts/oracles/ChainlinkRelayerV1.sol` (commit `56f9f94f`) |
| Compiler | Solc `0.8.18+commit.87f61d96`, optimizer enabled, 10,000 runs |
| EVM version | paris |
| Verified on | CeloScan and Blockscout (address `0xEd2e6f192aD96B1676C6167aB27949179e08CBD1`) |

### Price Path

| # | Feed | Address | Invert | Provider | Deviation | Heartbeat |
| --- | --- | --- | --- | --- | --- | --- |
| 0 | CELO/USD | `0x0568fD19986748cEfF3301e55c0eb1E729E0Ab7e` | No | Chainlink | 0.5% | 240s |
| 1 | XAUt/USDT | `0x98DC6E90D4c2f212ed9d124aD2aFBa4833268633` | Yes | Redstone | 0.1% | 86,400s |

**Derivation** : `CELO/USD × inverse(XAUt/USDT) ≈ CELO/XAUt`

This is the same 2-feed structure used by the existing WETH relayer (`CELO/USD × inverse(ETH/USD)`).

## Proposed Changes

### 1. Add CELO/XAUt relayer as oracle

- Destination: `SortedOracles.addOracle`
- Data: `address token = 0xb1C735FFd1b8F01316382E72bcc17D19493eB009`, `address oracleAddress = 0xEd2e6f192aD96B1676C6167aB27949179e08CBD1`
- Value: 0

### 2. Set token report expiry for CELO/XAUt

- Destination: `SortedOracles.setTokenReportExpiry`
- Data: `address token = 0xb1C735FFd1b8F01316382E72bcc17D19493eB009`, `uint256 _reportExpirySeconds = 360`
- Value: 0

### 3. Set equivalent token for XAUt0 FeeWrapper

- Destination: `SortedOracles.setEquivalentToken`
- Data: `address token = 0x857BF24e29da0773687E804a743c2E421a394C16` (XAUt0 FeeWrapper), `address equivalentToken = 0xb1C735FFd1b8F01316382E72bcc17D19493eB009`
- Value: 0

### 4. Set equivalent token for USA₮ FeeCurrencyWrapper

- Destination: `SortedOracles.setEquivalentToken`
- Data: `address token = 0x0357EE22278c922e1D36cFe6b899269b161880C4` (USA₮ FeeCurrencyWrapper), `address equivalentToken = 0x765DE816845861e75A25fCA122bb6898B8B1282a` (cUSD)
- Value: 0

## Governance Vote

The Mento community is asked to vote on the following proposal:

> _“Do you approve adding a CELO/XAUt feed and a CELO/USA₮ equivalent-token mapping to support XAUt0 and USA₮ as gas currencies?”_

**YES** – Enable the oracle and the equivalent-token mapping.

**NO** – Do not enable them.

## Risks

The data relayed by the `ChainlinkRelayer` contract is only as secure as the underlying price feeds it relies on:

- **Chainlink CELO/USD** — well-established feed used in production for WETH and other Mento-related rate paths.
- **Redstone XAUt/USDT** — Redstone push feed maintained via their multi-feed adapter (`0x65d0F14f7809CdC4f90c3978c753C4671b6B815b`) on Celo mainnet, updated with a 0.1% deviation trigger.

If either feed is compromised, the data relayed could be manipulated, leading to incorrect rate reports. This risk is present with all oracle solutions and is not specific to these feeds.

This particular feed is considered **low risk** as the data will only be used as a reference price for gas price calculations. Gold (XAU) is also less volatile than ETH — comparable or lower magnitude risk than the existing WETH gas currency precedent.

The relayer contract is byte-identical to the WETH relayer that has been live in production for over a year without incident.

## Encoded Calldata

To be posted on-chain via the Mento governance UI:

```json
[
  {
    "address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
    "value": 0,
    "data": "0xf0ca4adb000000000000000000000000b1c735ffd1b8f01316382e72bcc17d19493eb009000000000000000000000000ed2e6f192ad96b1676c6167ab27949179e08cbd1"
  },
  {
    "address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
    "value": 0,
    "data": "0xfc20935d000000000000000000000000b1c735ffd1b8f01316382e72bcc17d19493eb0090000000000000000000000000000000000000000000000000000000000000168"
  },
  {
    "address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
    "value": 0,
    "data": "0x145d8d18000000000000000000000000857bf24e29da0773687e804a743c2e421a394c16000000000000000000000000b1c735ffd1b8f01316382e72bcc17d19493eb009"
  },
  {
    "address": "0xefB84935239dAcdecF7c5bA76d8dE40b077B7b33",
    "value": 0,
    "data": "0x145d8d180000000000000000000000000357ee22278c922e1d36cfe6b899269b161880c4000000000000000000000000765de816845861e75a25fca122bb6898b8b1282a"
  }
]

```

Calldata decoded:

| # | Function | Selector | Decoded args |
| --- | --- | --- | --- |
| 1 | `addOracle(address,address)` | `0xf0ca4adb` | rateFeedId=`0xb1C7...b009`, oracle=`0xEd2e...CBD1` |
| 2 | `setTokenReportExpiry(address,uint256)` | `0xfc20935d` | rateFeedId=`0xb1C7...b009`, expiry=`360` (0x168) |
| 3 | `setEquivalentToken(address,address)` | `0x145d8d18` | token=`0x857B...4C16` (XAUt0 FeeWrapper), equivalent=`0xb1C7...b009` |
| 4 | `setEquivalentToken(address,address)` | `0x145d8d18` | token=`0x0357...80C4` (USA₮ FeeCurrencyWrapper), equivalent=`0x765D...282a` (cUSD) |

## Verification

Anyone can independently verify the relayer’s correctness:

1. **Source code** : Compare the verified source on CeloScan for `0xEd2e6f192aD96B1676C6167aB27949179e08CBD1` with `mento-core` v2.5.0 `ChainlinkRelayerV1.sol`.
2. **Bytecode equivalence to WETH** : The runtime bytecode is byte-identical to the WETH relayer (`0xd5bAF8D2072B2dB54Bed9c4763D591a44C408A98`) except for the 80 bytes occupied by constructor immutables.
3. **Live rate computation** : Calling `relay()` (via `cast call --trace`) shows the contract correctly computes CELO/XAUt as `CELO/USD × inverse(XAUt/USDT)` and would submit it to `SortedOracles.report()` with the expected Fixidity-scaled value.

## References

- MGP-9 on the Mento forum: _Adding a CELO/ETH feed to support WETH as gas currency_ — the precedent / template
- CGP-203 in the Celo governance repo: _Adding WETH as gas currency_ — the precedent for adding volatile assets as gas currency
- CGP-128 in the Celo governance repo: _Enable USDT as Gas Currency_ — the precedent for using `setEquivalentToken(<wrapper>, cUSD)` for a USD stablecoin
- Celo documentation: _Adding Gas Currencies to Celo_ and _Paying for Gas with Tokens_
- Tether Gold (XAUT) — see Tether’s official Gold product page
- Redstone Celo multi-feed configuration — see the `redstone-oracles-monorepo` repository, `relayer-manifests-multi-feed/celoMultiFeed.json`

---

<div class="post-metadata">

**Author:** ![Oforge007](https://yyz2.discourse-cdn.com/flex004/user_avatar/forum.mento.org/oforge007/32/10_2.png) [@Oforge007](https://forum.mento.org/u/Oforge007)\
**Post date:** [May 13, 2026, 2:37pm UTC](https://forum.mento.org/t/mgp-17-adding-a-celo-xaut-feed-and-celo-usa-equivalent-mapping/120/2 "2026-05-13T14:37:10Z")

</div>

Thanks for the update. Note that MGP-17 is already taken on Mento Governance.
