For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 tokenOut address 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 tokenOut address 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