Staking USDC
Earn passive yield by staking USDC in the Trust Vault.
How to Stake
Navigate to Trust Vault
Go to the Trust tab and select Vault
Enter Amount
Input the amount of USDC you want to stake
Confirm Transaction
Review the details and confirm. Your wallet will process the transaction.
Receive tmUSDC
You’ll receive tmUSDC tokens representing your stake
Understanding tmUSDC
tmUSDC (Trust Mint USDC) is your receipt token:
interface tmUSDCPosition {
balance: number; // Your tmUSDC balance
exchangeRate: number; // Current tmUSDC/USDC rate
usdcValue: number; // balance * exchangeRate
earnedYield: number; // Total yield earned
}
Exchange Rate
The exchange rate starts at 1.0 and increases over time as interest is earned:
Day 0: 1 tmUSDC = 1.0000 USDC
Day 30: 1 tmUSDC = 1.0066 USDC (+0.66%)
Day 90: 1 tmUSDC = 1.0200 USDC (+2%)
Day 365: 1 tmUSDC = 1.0800 USDC (+8%)
Current Rates
Rates are variable and depend on vault utilization. Check the app for current rates.
| Metric | Current Value |
|---|
| Supply APY | ~8% |
| Total Staked | $X,XXX,XXX |
| Utilization | XX% |
| Exchange Rate | 1.XXXX |
Withdrawal
You can withdraw your staked USDC at any time (subject to liquidity):
Navigate to Vault
Go to Trust > Vault > Withdraw
Enter Amount
Specify how much tmUSDC to redeem (or “Max” for all)
Receive USDC
Your tmUSDC is burned and USDC is returned at the current exchange rate
If vault utilization is very high (>95%), withdrawals may be delayed until borrowers repay or new deposits arrive.
Yield Calculation
Your yield is calculated based on:
function calculateYield(position: Position): number {
const currentValue = position.tmUSDC * getCurrentExchangeRate();
const originalValue = position.depositedUSDC;
return currentValue - originalValue;
}
// Example
const deposited = 1000; // USDC
const tmUSDC = 1000; // Received at rate 1.0
const currentRate = 1.08; // After 1 year
const currentValue = 1000 * 1.08; // 1080 USDC
const yield = 1080 - 1000; // 80 USDC profit
API Integration
Stake programmatically via the API:
# Stake USDC
curl -X POST "https://api.usmewe.com/v1/vault/stake" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"amount": 1000}'
# Check position
curl -X GET "https://api.usmewe.com/v1/vault/position" \
-H "Authorization: Bearer YOUR_TOKEN"
API Reference
Full Vault API documentation