Mint and Redeem CarryTradeUSDTRYLeverage at the Contract Level
The vault uses USDC as its base asset. Minting is handled through the vault token contract by a permissioned actor, while redemptions are executed through the dedicated Redemption Vault contract.
When interacting directly with the contracts, make sure to use the correct proxy interface where applicable. Minting should be executed through the vault token contract by a permissioned actor, while redemptions should be executed through the Redemption Vault contract.
Pricing
For the Morini CarryTradeUSDTRYLeverage Vault, pricing is provided through a custom oracle feed.
Oracle Contract: 0xc69731B51C6dBb2fb818D8DB1F4116FB8A379288
Function: latestRoundData
The vault price is read from the answer value returned by latestRoundData.
Decimals: 8
To interpret the price correctly, divide the answer value by 1e8.
Example:
price = answer / 1e8
This oracle price is used as the reference vault share price for minting, redemption, and reporting flows.
Minting / Subscription
For the Morini CarryTradeUSDTRYLeverage Vault, minting is executed through the vault token contract using the mint function under Write as Proxy.
Vault Token Contract: 0x2bf11d2E04Bc40daa95c24B8b90EC4F5c57Dd326
Function: mint (0x40c10f19)
The mint function mints the specified amount of mToken shares to a given address. This function should only be called by a permissioned actor.
Parameters:
to (address) – Address that will receive the minted vault tokens
amount (uint256) – Amount of vault tokens to mint
Before minting, the permissioned actor should verify:
The receiver address is correct.
The mint amount is correct.
The corresponding subscription or deposit has been properly processed.
The transaction is being executed through the correct proxy contract.
The caller has the required permission to mint.
This function may revert if the caller is not permissioned or if the minting transaction does not satisfy the contract’s requirements.
Redemption Request
For the Morini CarryTradeUSDTRYLeverage Vault, delayed redemptions are executed through the Redemption Vault contract using the redeemRequest function under Write as Proxy.
Redemption Vault Contract: 0xD980df2A697bfd38279BE1Ee2bc13495c101d5C9
Function: redeemRequest (0x15571a04)
The redeemRequest function creates a redemption request and allows specifying a custom recipient address for the redeemed tokens.
Parameters:
tokenOut (address) – Stablecoin token address to redeem to
amountMTokenIn (uint256) – Amount of mToken to redeem, using 18 decimals
recipient (address) – Address that will receive the redeemed tokens
Redemption requests are processed according to the vault’s settlement rules. For CarryTradeUSDTRYLeverage, redemptions are processed every 2 days on Turkish business days with T+2 settlement at the fund level, subject to local public holidays.
Before creating a redemption request, users should verify:
The
tokenOutaddress is correct.The amount of mToken being redeemed is correct.
The recipient address is correct.
The applicable settlement timing has been reviewed.
The transaction is being executed through the correct Redemption Vault contract.
Instant Redemption
If available and within the applicable limits, users may also redeem through the redeemInstant function under Write as Proxy.
Redemption Vault Contract: 0xD980df2A697bfd38279BE1Ee2bc13495c101d5C9
Function: redeemInstant (0x8b53f75e)
The redeemInstant function redeems mToken into the selected tokenOut if the daily limit and allowance are not exceeded. It burns mToken from the user, transfers the applicable fee in mToken to the fee receiver, and transfers the selected output token to the user.
Parameters:
tokenOut (address) – Stablecoin token address to redeem to
amountMTokenIn (uint256) – Amount of mToken to redeem, using 18 decimals
minReceiveAmount (uint256) – Minimum expected amount of tokenOut to receive, using 18 decimals
Before using instant redemption, users should verify:
The
tokenOutaddress is correct.The mToken amount is correct.
The minimum receive amount is set correctly for slippage protection.
The transaction is within the daily instant redemption limit.
The user has sufficient mToken balance and allowance.
Last updated