# Citrea USD: ctUSD

Citrea USD (ctUSD) is Citrea's fiat-backed, regulatory-compliant stablecoin. Issued by MoonPay, it serves as the default stablecoin on the Citrea network.

### How to Acquire ctUSD

ctUSD is fully ready and available on Citrea Mainnet. Initially, users and developers can acquire ctUSD via four primary channels:

* Bridging from Ethereum: Users can acquire ctUSD using other stablecoins on Ethereum (e.g., USDC, USDT) via bridges integrated to Citrea (e.g. Bridge Hub).
* DEX Pools: Liquid markets are available on Citrea-native Decentralized Exchanges (DEXs).
* MoonPay: Direct fiat-to-crypto purchase using the MoonPay on-ramp widget.
* Direct Minting (OTC): Direct minting support is available for large institutional orders.

> ℹ️ Institutional Inquiries: If you are interested in large volume minting, please reach out to us directly at <info@citrea.xyz>.

***

## Developer Guide

ctUSD adheres to the ERC-20 standard, making it compatible with all standard EVM tooling.

### 1. Contract Details

| Network        | Contract Address                                                                                                                     | Decimals |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -------- |
| Citrea Mainnet | [0x8D82c4E3c936C7B5724A382a9c5a4E6Eb7aB6d5D](https://explorer.mainnet.citrea.xyz/address/0x8D82c4E3c936C7B5724A382a9c5a4E6Eb7aB6d5D) | `6`      |

> ⚠️ Important: ctUSD uses 6 decimals (not 18). Ensure your app's arithmetic and UI formatting handle this correctly to avoid precision errors.

### 2. Integration Guide

#### Smart Contract (Solidity)

To interact with ctUSD in your contracts, you can use the standard `IERC20` interface from OpenZeppelin.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract MyDeFiProtocol {
    IERC20 public immutable ctUSD;

    // Initialize with the ctUSD address on Citrea Mainnet
    constructor(address _ctUSD) {
        ctUSD = IERC20(_ctUSD);
    }

    function deposit(uint256 amount) external {
        // Transfer ctUSD from the user to this contract
        // Note: The user must approve this contract first
        bool success = ctUSD.transferFrom(msg.sender, address(this), amount);
        require(success, "Transfer failed");

        // Your logic here...
    }
}
```

#### Frontend (Adding to Wallet)

```javascript
import { createWalletClient, custom } from 'viem';
import { citrea } from 'viem/chains';

const client = createWalletClient({
  chain: citrea,
  transport: custom(window.ethereum)
});

const addCtUSD = async () => {
  try {
    const success = await client.watchAsset({
      type: 'ERC20',
      options: {
        address: '0x8D82c4E3c936C7B5724A382a9c5a4E6Eb7aB6d5D', // ctUSD Contract Address
        symbol: 'ctUSD',
        decimals: 6,
        image: 'https://citrea.xyz/assets/ctusd-logo.png',
      },
    });

    if (success) console.log('ctUSD added!');
  } catch (error) {
    console.error('Error adding token:', error);
  }
};
```

***

### 3. Ecosystem Infrastructure (SDKs & Tools)

ctUSD is supported by a full suite of financial infrastructure providers. Use the official documentation below to integrate banking rails, on-ramps, and commerce tools into your application.

| Capability                                      | Provider  | Documentation Link                                      |
| ----------------------------------------------- | --------- | ------------------------------------------------------- |
| Fiat On/Off-Ramps                               | MoonPay   | [View MoonPay Developer Docs](https://dev.moonpay.com/) |
| Autoramp (Virtual Bank Accounts (vIBAN), Swaps) | Iron      | [View Iron API Docs](https://docs.iron.xyz/)            |
| Cross-Chain Swaps & Bridging                    | Swaps.xyz | [View Swaps Protocol Docs](https://docs.swaps.xyz/)     |
| Merchant Payments & Checkout                    | Helio     | [View Helio/Commerce Docs](https://docs.hel.io/)        |

***

### 4. Verification & Transparency (M0 Network)

Because ctUSD is minted via the M0 Protocol, developers and auditors can query the underlying network data to verify reserves, total supply, and minter status in real time.

| Resource                | Description                                                                                        | Link                                                                     |
| ----------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Transparency Dashboard  | View real-time attestations, reserve breakdowns (Cash vs T-Bills), and audit reports.              | [View M0 Reserves Dashboard](https://dashboard.m0.org/stablecoins/ctusd) |
| Protocol API (GraphQL)  | Programmatically query minter data, supply caps, and collateral health for your UI/Analytics page. | [View M0 GraphQL Docs](https://docs.m0.org/api/overview/)                |
| Contract Specifications | Deep dive into the M0 smart contract architecture used by ctUSD.                                   | [View M0 Protocol Docs](https://docs.m0.org/)                            |

***

### Appendix: Reserves & Regulatory Framework

ctUSD is issued by MoonPay. This legal structure ensures that:

1. Bankruptcy-remote: All reserves are held in segregated accounts, legally distinct from MoonPay's corporate funds, for the benefit of ctUSD holders.
2. 1:1 collateralization: Every token is backed 100% by cash and short-term U.S. Treasury bills.
3. Attestations: Reserves are periodically published on-chain by independent oracles.


---

# 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.citrea.xyz/developer-documentation/citrea-usd-ctusd.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.
