> For a complete index of Agora Finance documentation, fetch https://docs.agora.finance/llms.txt

# Mint or Deposit newUSD

> How to mint new whitelabel stablecoins or deposit USD to receive tokens via the ERC4626 vault

## Description

Users can obtain newUSD tokens by depositing AUSD into the vault. The vault operates at a 1:1 conversion rate between AUSD and newUSD.

## Flow of Funds

* User approves the newUSD contract to spend their AUSD
* User calls `deposit()` or `mint()`
  * `deposit(assets, receiver)` - Specify exact AUSD amount to deposit. The vault calculates and mints the corresponding newUSD.
  * `mint(newUsd, receiver)` - Specify exact newUSD you want to receive. The vault calculates and charges the corresponding AUSD amount
* Remaining AUSD is transferred to vault
* Equivalent amount of newUSD is minted to user

### Examples

![](/_fern-files/_img/f9e8e699b878314e15b888235c0b9c13e9b3cf1f1406ce35ac65a86ae90e932d.webp)![](/_fern-files/_img/4d2780e63532579cabb4b5f199c872bad0748db6f5720824517093b2076eb7b3.webp)

## Functions

```solidity
// Deposit exact amount of AUSD, receive newUSD
function deposit(uint256 assets, address receiver) returns (uint256 newUsd);

// Mint exact amount of newUSD, pay required AUSD
function mint(uint256 newUsd, address receiver) returns (uint256 assets);

// Check maximum AUSD you can deposit
function maxDeposit(address owner) returns (uint256);

// Calculate newUSD received for AUSD amount
function previewDeposit(uint256 assets) returns (uint256);
```