Issuance
About minting and redeeming lvlUSD
lvlUSD is backed by a multi-collateral basket of dollar tokens like USDT and USDC. Users can mint and redeem lvlUSD by interacting with the minting contract. Contract addresses could be found here.
Though mints and redemptions will both eventually be permissionless, redemptions are available to permissioned users only.
How minting works
User approves
LevelMinting
to spend the collateral asset they want to mint with.User calls
mint
ormintDefault
against theLevelMinting
contract with order details, including the address sending the collateral (benefactor), the address receiving the lvlUSD (beneficiary), the collateral amount, and the expected lvlUSD amount.The benefactor must be the address calling the mint function
The contract fetches the price of the underlying collateral via Chainlink oracles. The conversion from collateral to lvlUSD is
min(oracle_price, 1)
to ensure that the protocol is always overcollateralizedIf the calculated lvlUSD amount is lower than what the user specified, the transaction will fail
The contract will then transfer the collateral from the
benefactor
's wallet to the reserve addressesReserve addresses are allowlisted contracts- the transaction will fail if an allowlisted contract is not passed in
The
beneficiary
receives lvlUSD
How redemptions work
Restaking protocols typically have a cooldown period during which the underlying collateral backing lvlUSD cannot be redeemed. Redemptions for lvlUSD therefore have a cooldown period to ensure that there is sufficient collateral to meet redemptions.
User approves
LevelMinting
to spend lvlUSDUser initiates the redemption with order details, including the address sending lvlUSD (benefactor), the address receiving the collateral (beneficiary), the lvlUSD amount, and the expected collateral amount. This will transfer
lvlUSD
to the minting contract and start the cooldown period.The benefactor must be the address calling the redeem function
After the cooldown period finishes, the user completes the redemption
The contract fetches the price of the underlying collateral via Chainlink oracles. The conversion from lvlUSD to collateral is
max(oracle_price, 1)
to ensure that the protocol is always overcollateralized.If the calculated collateral amount is lower than what the user specified, the transaction will fail
The contract then burns the lvlUSD that was transferred when initiating the mint, and transfers the collateral to the
beneficiary
Because of the oracle price, users may receive less than 1 lvlUSD or 1 collateral token when minting or redeeming. The frontend enforces a maximum slippage allowance of 20 bps; given USDT/C's relative peg stability, we expect most mints and redemptions to be within this bound.
Security measures
To ensure smooth operations, there are several security measures embedded in the minting contracts:
The protocol can allow certain allowlisted roles (called "gatekeepers") to disable mints and redemptions. These allowlisted roles are only grantable by the admin contract, and are intended to act as safe guards in the event of protocol failure.
Mints and redemptions may be allowlisted
The protocol may define a maximum amount of lvlUSD to be minted per block
Function | Accepted Collateral |
---|---|
Minting | USDT, USDC |
Redemption | USDT, USDC |
Last updated