If the amount of MUSD exceeds a single trove, it will continue to redeem in ascending order of collateralization ratio. Troves with collateralization ratios below 110% are eligible for liquidation, and cannot be redeemed against.
Prerequisites
Before you start, verify:1
Check System Status
Go to TroveManager → “Read as Proxy” → call
getTCR() with current BTC price. Must show ≥ 1100000000000000000 (110%)2
Verify MUSD Balance
Check your balance on the MUSD token contract
3
Get BTC Price
Go to PriceFeed → “Read as Proxy” → call
fetchPrice()4
Get Contract Addresses
See contract addresses at the bottom for both Mainnet and Testnet
Redemption Methods
Option A: Quick & Simple (Higher Gas)
Use this if you want to redeem quickly without calculating hints.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
You’ll see 6 input fields. Fill them as follows:
uint256
required
Your amount in wei (see conversion below)
address
required
0x0000000000000000000000000000000000000000address
required
Your wallet address
address
required
Your wallet address
uint256
required
1100000000000000000000uint256
required
0Converting MUSD to Wei
Option B: With Hints (Lower Gas)
Use this to save on gas costs by providing optimal hints.1
Get Redemption Hints
Go to HintHelpers → “Read as Proxy” →
getRedemptionHints()Fill in:_amount: Your amount in wei_price: Current BTC price from PriceFeed_maxIterations: 50
firstRedemptionHintpartialRedemptionHintNICR
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
upperHintlowerHint
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
Smart Contract Integration
TypeScript Example
Calculation Example
Redeeming 100 MUSD:1
Burn MUSD
You burn: 100 MUSD
2
Calculate BTC
Formula:
(Your MUSD Amount ÷ BTC Price) × 0.9925 = BTC receivedExample: (100 ÷ 100000) × 0.9925 = 0.0009925 BTC3
Receive BTC
You receive: $99.25 worth of BTC (0.75% fee goes to protocol)
Common Issues
”Cannot redeem when TCR < MCR”
”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.Best Practices
- 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
Mainnet
address
0x94AfB503dBca74aC3E4929BACEeDfCe19B93c193address
0xD267b3bE2514375A075fd03C3D9CBa6b95317DC3address
0x8C5DB4C62BF29c1C4564390d10c20a47E0b2749faddress
0x44b1bac67dDA612a41a58AAf779143B181dEe031address
0xc5aC5A8892230E0A3e1c473881A2de7353fFcA88address
0xdD468A1DDc392dcdbEf6db6e34E89AA338F9F186Testnet
address
0xE47c80e8c23f6B4A1aE41c34837a0599D5D16bb0address
0x4e4cBA3779d56386ED43631b4dCD6d8EacEcBCF6address
0x722E4D24FD6Ff8b0AC679450F3D91294607268fAaddress
0xCdF7028ceAB81fA0C6971208e83fa7872994beE5address
0x86bCF0841622a5dAC14A313a15f96A95421b9366address
0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503Need 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