Stake & Unstake
Staking is where you actually earn yield. When you stake USDM, you receive sUSDM, a receipt token whose exchange rate to USDM grows over time as the protocol captures funding rates, lending yield, and maker rebates.
Unstaking is a two-step process with a cooldown period.
Current unstake cooldown: 3 days. This value is read live from the sUSDM contract and can be adjusted by governance. The active value is always shown in the UI and is authoritative.
How the exchange rate works
1 sUSDM = X USDM (X grows over time)The app always shows the current rate at the top of the Stake page, e.g. 1 sUSDM = 1.0004 USDM. When you stake USDM, you receive amount / X sUSDM. When you unstake, you receive the same number of sUSDM × (current rate) USDM, which is higher than you put in, because the rate has grown.
Stake decimals: USDM has 6 decimals, sUSDM has 12.
Yield accrues continuously through the rate. No claim transaction, no compound button.
Stake

1. Enter the amount
On the Stake page, select the Stake tab and enter the USDM amount you want to stake. The app displays:
Your USDM balance.
The estimated sUSDM you'll receive at the current rate.
2. Approve USDM (first time only)
Click Approve USDM. This allows the sUSDM contract to pull your USDM.
3. Stake
The button changes to Stake USDM. Click and confirm.
The transaction calls sUSDM.deposit(amount, yourAddress). Your USDM is transferred in, and sUSDM is minted to your wallet at the current rate.
That's it; yield starts now
Your sUSDM balance doesn't change, but its redemption value in USDM grows. You can watch the 1 sUSDM = X USDM line on the page tick up over time.
Unstake
Unstaking is a two-step process: request now, claim after the cooldown.
1. Request an unstake
Switch to the Unstake tab. Enter the sUSDM amount you want to unstake. The app displays:
Your sUSDM balance.
The estimated USDM you'll receive at the current rate.
Click Unstake sUSDM and confirm. The transaction calls sUSDM.cooldownShares(amount).
After this, the cooldown starts. A new card appears under Unstake requests with status Cooldown and a countdown timer.
Your sUSDM is locked to the cooldown request until the cooldown ends. The exchange rate at the time of the request is the rate used at claim; you don't get additional yield during the cooldown.
2. Wait for the cooldown
The Waiting Time column counts down. The cooldown length (currently 3 days) is set by the sUSDM contract and shown live in the UI. Governance can adjust this parameter; future changes will be announced before they take effect.
3. Claim your USDM
When the cooldown ends, the request's badge flips from Cooldown to Ready (green) and the button changes from a grey Waiting to a teal Claim.
Click Claim and confirm. The transaction calls sUSDM.claimUnstake(requestId), burns the cooldowned sUSDM shares, and sends the corresponding USDM to your wallet.
After unstaking
You now hold plain USDM. You can:
Re-stake it to earn yield again.
Redeem it to USDC; see Redeem USDM. Note that redeem has its own, separate cooldown.
Troubleshooting
"Insufficient USDM balance": check your USDM balance; you may need to mint first.
"Insufficient sUSDM balance" (on Unstake): you're trying to unstake more than you hold.
Rate looks static: the sUSDM rate updates whenever the protocol settles earnings; it's not every block.
Last updated
Was this helpful?