MUSD Redemptions
How to Redeem MUSD on Mezo
Section titled “How to Redeem MUSD on Mezo”Quick Overview
Section titled “Quick Overview”Redeeming lets you burn 1 MUSD to recieve $1 in BTC (minus a 0.75% redemption fee and gas fees). The system redeems starting from the trove with the lowest collateral ratio above 110%. If the amount of MUSD exceeds a single trove, it will continue to redeem in ascending order of collateraliztion ratio.
Troves with collateralization ratios below 110% are eligible for liquidation, and cannot be redeemed against.
Prerequisites
Section titled “Prerequisites”Before you start, verify:
- System is accepting redemptions: Go to TroveManager → “Read as Proxy” → call
getTCR()with current BTC price. Must show ≥1100000000000000000(110%) - You have MUSD: Check your balance on the MUSD token contract
- Get current BTC price: Go to PriceFeed → “Read as Proxy” → call
fetchPrice() - Get correct contract addresses: See contract addresses at the bottom for both Mainnet and Testnet.
Step-by-Step Instructions
Section titled “Step-by-Step Instructions”1. Go to TroveManager Contract
Section titled “1. Go to TroveManager Contract”Open the TroveManager contract in your block explorer and click the “Write as Proxy” tab.
2. Find Function 11: redeemCollateral
Section titled “2. Find Function 11: redeemCollateral”You’ll see 6 input fields. Here’s how to fill them:
Option A: Quick & Simple (Higher Gas)
Section titled “Option A: Quick & Simple (Higher Gas)”Use this if you want to redeem quickly without calculating hints.
_amount: [your amount in wei - see conversion below]_firstRedemptionHint: 0x0000000000000000000000000000000000000000_upperPartialRedemptionHint: [your wallet address]_lowerPartialRedemptionHint: [your wallet address]_partialRedemptionHintNICR: 1100000000000000000000_maxIterations: 0
Converting MUSD to Wei:
- 100 MUSD =
100000000000000000000 - 5,005 MUSD =
5005000000000000000000
Formula: Your amount × 1000000000000000000
Option B: With Hints (Lower Gas)
Section titled “Option B: With Hints (Lower Gas)”Use this to save on gas costs.
Step 1: Get Redemption Hints
Section titled “Step 1: Get Redemption Hints”Go to HintHelpers → “Read as Proxy” → getRedemptionHints()
Fill in:
_amount: Your amount in wei (same as above)_price: Current BTC price from PriceFeed_maxIterations: 50
Copy the returned values:
firstRedemptionHintpartialRedemptionHintNICR
Step 2: Get Position Hints
Section titled “Step 2: Get Position Hints”Go to SortedTroves → “Read as Proxy” → findInsertPosition()
Fill in:
_NICR: Use thepartialRedemptionHintNICRfrom Step 1_prevId: Your wallet address_nextId: Your wallet address
Copy the returned values:
upperHintlowerHint
Step 3: Call redeemCollateral
Section titled “Step 3: Call redeemCollateral”Go back to TroveManager → “Write as Proxy” → redeemCollateral
_amount: [your amount in wei]_firstRedemptionHint: [from Step 1]_upperPartialRedemptionHint: [upperHint from Step 2]_lowerPartialRedemptionHint: [lowerHint from Step 2]_partialRedemptionHintNICR: [from Step 1]_maxIterations: 50
What You’ll Receive
Section titled “What You’ll Receive”Example: Redeeming 100 MUSD
- You burn: 100 MUSD
- You receive:
$99.25worth of BTC (0.75% fee goes to protocol)
Formula: (Your MUSD Amount ÷ BTC Price) × 0.9925 = BTC received
Common Issues
Section titled “Common Issues”“Cannot redeem when TCR < MCR” → System TCR is below 110%. Wait until it recovers.
“Unable to redeem any amount” → This can happen for several reasons:
- No troves available with collateral ratio above 110%
- Hints are out of date (specifically the NICR hint)
- The redemption amount would leave the target trove with less than the minimum debt requirement of 1,800 MUSD
- Max iterations set too low for the redemption size
Transaction runs out of gas
→ Lower _maxIterations to 10 or split into smaller redemptions.
Transaction reverts unexpectedly → Get fresh hints and try again. Someone may have redeemed before you.
Received less than expected
→ Check the Redemption event in your transaction. Some MUSD may have been returned if the last trove would go below 1,800 MUSD minimum.
- Generate hints immediately before redeeming - They become stale if someone else redeems first
- Use Option A for small amounts (<
$10,000) - The higher gas cost is negligible - Use Option B for large amounts - Saves significant gas on big redemptions
- Set higher maxIterations for larger redemptions:
- Small (< 10 troves): 10
- Medium (10-30 troves): 50
- Large (30+ troves): 100
Contract Addresses
Section titled “Contract Addresses”| Contract | Mainnet | Testnet |
|---|---|---|
| TroveManager | 0x94AfB503dBca74aC3E4929BACEeDfCe19B93c193 | 0xE47c80e8c23f6B4A1aE41c34837a0599D5D16bb0 |
| HintHelpers | 0xD267b3bE2514375A075fd03C3D9CBa6b95317DC3 | 0x4e4cBA3779d56386ED43631b4dCD6d8EacEcBCF6 |
| SortedTroves | 0x8C5DB4C62BF29c1C4564390d10c20a47E0b2749f | 0x722E4D24FD6Ff8b0AC679450F3D91294607268fA |
| BorrowerOperations | 0x44b1bac67dDA612a41a58AAf779143B181dEe031 | 0xCdF7028ceAB81fA0C6971208e83fa7872994beE5 |
| PriceFeed | 0xc5aC5A8892230E0A3e1c473881A2de7353fFcA88 | 0x86bCF0841622a5dAC14A313a15f96A95421b9366 |
| MUSD Token | 0xdD468A1DDc392dcdbEf6db6e34E89AA338F9F186 | 0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503 |
All addresses are proxy contracts. Always use “Read as Proxy” or “Write as Proxy” tabs.
Need Help?
Section titled “Need Help?”- Check your transaction on the block explorer to see events and error messages
- Join our Discord and open a ticket: https://discord.com/invite/mezo