# Mint & Redeem Key Functions

## Roles in EthenaMinting contract

### Overview

The Ethena minting contract has been designed to offer a safe and secure platform for the creation of *USDe*. Its atomic operations ensure that tasks are either fully completed or reverted, leaving no room for partial executions. Its immutable nature guarantees that its critical rules and operations cannot be easily altered, ensuring consistency and trust in the process. It has these key pieces of functionality:

1. **Minting**: Minters can mint *USDe* by providing assets and receiving *USDe* tokens in return. The backing assets are transferred to "Off-Exchange Settlement" providers based on a predefined route. The minting process is subject to a maximum limit set by the contract.
2. **Redemption**: Redeemers can redeem their *USDe* by providing them as input and receiving the underlying assets back *USDe* in return. The redeemed *USDe* tokens are burned from the user's balance. The redemption process is subject to a maximum limit set by the contract.
3. **Signature Verification**: The contract cryptographically verifies the signature provided by the user to ensure the authenticity of the minting or redemption order.
4. **Supported Assets:** The contract maintains a strict list of supported assets that can be used as backing assets for minting and redemption.
5. **Custodian Addresses:** The contract maintains a strict list of custodian addresses to which backing assets can be transferred during the minting process.
6. **Max Mint/Redeem Per Block:** The contract sets a maximum limit for the number of *USDe* tokens that can be minted or redeemed per block.

Roles in smart contracts are what control lower level operations and function calls. It's a security feature, like AWS IAM, that allows the authors of smart contracts, and the users using them once deployed to the blockchain, to be certain of how they can operate.

{% hint style="info" %}
Despite being named the "Ethena Minting contract", it is responsible for both the **minting** & **redeeming** functionality of *USDe*.
{% endhint %}

## Roles in the Ethena Minting contract

There are five roles in the Ethena Minting contract. You can view the deployed Ethena Minting contract on the Ethereum blockchain **here**.

<table data-full-width="true"><thead><tr><th width="156">Role</th><th width="103.19999999999999">Type</th><th width="194">Controller</th><th width="125">Role Count</th><th width="427">Functions / Notes</th></tr></thead><tbody><tr><td><code>ADMIN</code></td><td>Multi-Sig</td><td>Ethena Labs</td><td>1</td><td><ul><li>Transfer Ownership</li><li>Add/remove supported collateral asset</li><li>Add/remove custodian addresses</li><li>Grant/revoke Minter, Redeemer, Gatekeeper roles</li><li>Set max/mint mint/redeem per block</li><li>Reenable mint/redeem</li></ul></td></tr><tr><td><code>GATEKEEPER</code></td><td>EOA</td><td><p>Shared between</p><ul><li>Ethena Labs</li><li>External Security Firms</li></ul></td><td>3+ internal 3+ external</td><td><ul><li><p>Disable mint/redeem</p><ul><li>Disables when they execute at incorrect prices on chain</li><li>Limits damage on mint/redeem roles compromise</li></ul></li></ul></td></tr><tr><td><code>MINTER</code></td><td>EOA</td><td>Ethena Labs</td><td>20</td><td><ul><li>Mint</li><li>Transfer to approved "Off-Exchange Settlement" providers</li></ul></td></tr><tr><td><code>REDEEMER</code></td><td>EOA</td><td>Ethena Labs</td><td>20</td><td><ul><li>Redeem</li></ul></td></tr></tbody></table>


---

# 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.ethena.fi/solution-design/minting-usde/mint-and-redeem-key-functions.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.
