> For the complete documentation index, see [llms.txt](https://level-money.gitbook.io/level-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://level-money.gitbook.io/level-documentation/user-guides/interacting-with-level-contracts/direct-calls.md).

# Direct calls

**Redeem lvlUSD for USDC:**

* LevelMinting contract: [0x9136aB0294986267b71BeED86A75eeb3336d09E1](https://etherscan.io/address/0x9136aB0294986267b71BeED86A75eeb3336d09E1)
* First, call `initiateRedeem()` with the following variables:
  * `asset (address)`: the collateral asset to redeem for. Use USDC's Ethereum Mainnet address `(0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48)`
  * `lvlUsdAmount (uint256)`: the amount of `lvlUSD` to redeem. `lvlUSD` is an 18-decimal token
  * `minAssetAmount (uint256)`: the minimum amount of collateral to receive back, to the collateral's precision. For example, to receive back $1 in USDC, input `1e6`&#x20;
* Two seconds later, call `completeRedeem()` with the following variables:
  * `asset (address)`: the desired collateral asset. Must be the same address you inputted when calling `initiateRedeem()`.&#x20;
  * `beneficiary (address)`: the address to receive the collateral asset
* *Note: if you call `initiateRedeem()` twice, you will restart the cooldown period*
