# Mint and Redeem USP at the Contract Level

The Funding Manager is the core smart contract responsible for managing USP minting and redemption flows. It enables direct interaction with the protocol at the contract level, primarily intended for larger or institutional-sized operations.&#x20;

The Funding Manager handles token minting and redemption based on oracle price feeds. While minting is processed instantly, redemption requests are queued for delayed execution to ensure orderly liquidation of underlying strategy assets.

Funding Manager Contract Address: [0x7e0305B212dF3FB56366251C054c07748Bf9a797](https://etherscan.io/address/0x7e0305B212dF3FB56366251C054c07748Bf9a797)

*When interacting directly via the contract address, make sure to select **“Write as Proxy”** to execute minting and redeeming transactions correctly through the Funding Manager.*

## Minting (Buy)&#x20;

For USP, minting is executed at the Funding Manager contract level via the **buy** function.\
Minting is processed instantly, with collateral deposited directly into the protocol’s backing strategies.

**Function: buy (0xd6febde8)**\
Buys USP tokens for the sender’s address by forwarding the call to the internal buyOrder function.

Parameters:

* **collateralAmount\_ (uint256)** – Amount of collateral deposited (USDC)
* **minAmountOut\_ (uint256)** – Minimum USP amount expected (slippage protection)

## Redemption (Sell)&#x20;

For USP, redemptions are executed at the Funding Manager contract level via the **sell** function. Unlike minting, redemptions are processed through a delayed queue to allow orderly liquidation of underlying strategy assets.

**Function: sell (0xd79875eb)**\
Redeems collateral for the sender’s address by forwarding the call to the internal sellOrder function.

Parameters:

* **depositAmount\_ (uint256)** – Amount to redeem
* **minAmountOut\_ (uint256)** – Minimum output amount (slippage protection)
