Withdrawals
How to Exit Your Position
All Vault withdrawals use WithdrawalNFT with a waiting period before asset release.
Withdrawal Timeline
| Vault | Waiting Period |
|---|---|
| mMITOc | 7 days |
| mMITOs | 7 days |
| gmMITO | 14 days |
Step-by-Step Guide
Request Withdrawal
mMITOc
// By asset amount
function withdraw(uint256 assets, address receiver, address owner)
returns (uint256 shares)
// By share amount
function redeem(uint256 shares, address receiver, address owner)
returns (uint256 assets)- Your tokens (mMITOc/mMITOs/gmMITO) are burned
- Asset amount calculated at current exchange rate
- WithdrawalNFT minted to your address
Receive WithdrawalNFT
You'll receive an ERC721 NFT containing:
struct WithdrawalRequest {
address authority; // Vault that minted this NFT
uint48 maturity; // When you can claim
uint256 assetAmount; // Assets to receive
uint256 shareAmount; // Shares that were burned
}Wait for Maturity
- mMITOc / mMITOs: 7 days
- gmMITO: 14 days
Claim Assets
mMITOc / gmMITO
function claimWithdraw(uint256[] calldata tokenIds) externalBatch processing supported - claim multiple NFTs in one transaction (limited by maxClaimsPerTx).
WithdrawalNFT Contract
Permissions
bytes32 public constant VAULT_ROLE = keccak256("vault");| Function | Permission |
|---|---|
mint | VAULT_ROLE only |
burn | Minting vault only (authority check) |
Key Functions
// Mint NFT (called by Vault)
function mint(address to, uint256 assetAmount, uint256 shareAmount, uint48 maturity)
external returns (uint256 tokenId)
// Burn NFT (called by Vault on claim)
function burn(uint256 tokenId) external
// Query withdrawal info
function getWithdrawalRequest(uint256 tokenId)
external view returns (WithdrawalRequest memory)
// On-chain SVG metadata
function tokenURI(uint256 tokenId) external view returns (string memory)FAQ
Can I cancel a withdrawal?
No. Share tokens are burned at request time. The process is irreversible.
What if I don't claim after maturity?
No penalty. Your NFT remains valid indefinitely. Claim whenever you want.
What if I sell the NFT?
The buyer receives the assets after maturity. This is useful for getting instant liquidity by selling at a discount on NFT marketplaces.
Can I make multiple withdrawal requests?
Yes. Each request mints a separate NFT. You can have multiple pending withdrawals.