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

Mint and Redeem StockMarketTRBasisTrade 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 StockMarketTRBasisTrade Vault, pricing is provided through a custom oracle feed.

Oracle Contract: 0x1c7bEc0281080C0A4f85e55151191aF27EC69940

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 StockMarketTRBasisTrade Vault, minting is executed through the vault token contract using the mint function under Write as Proxy.

Vault Token Contract: 0x827Ce7E8e35861D9Ac7fE002755767b695A5594a

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 StockMarketTRBasisTrade Vault, delayed redemptions are executed through the Redemption Vault contract using the redeemRequest function under Write as Proxy.

Redemption Vault Contract: 0x85A7A5FFf71EaEF79e76730F2E717A04aADea27B

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 StockMarketTRBasisTrade, 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: 0x85A7A5FFf71EaEF79e76730F2E717A04aADea27B

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