LLM Notice: This documentation site supports content negotiation for AI agents. Request any page with Accept: text/markdown or Accept: text/plain header to receive Markdown instead of HTML. Alternatively, append ?format=md to any URL. All markdown files are available at /md/ prefix paths. For all content in one file, visit /llms-full.txt
Skip to main content

MOET Tokenomics

This document provides a comprehensive analysis of MOET's supply dynamics, minting and burning mechanisms, interest rate models, and economic incentives.

Supply Management

MOET employs a dynamic supply model where total supply directly tracks outstanding debt across all ALP positions.

Supply Formula


_12
Total MOET Supply = Total Outstanding Debt Across All Positions
_12
_12
Supply Changes:
_12
├── Increases When:
_12
│ ├── Users borrow MOET from ALP positions
_12
│ ├── ALP auto-borrows during rebalancing (HF > 1.5)
_12
│ └── Interest accrues on existing debt
_12
└── Decreases When:
_12
├── Users repay MOET debt
_12
├── Positions are liquidated (debt repaid by liquidators)
_12
├── ALP auto-repays during rebalancing (HF < 1.1)
_12
└── Vaults containing MOET are destroyed

Supply Dynamics Example

Day 1: Protocol Launch


_10
Initial State:
_10
├── Total MOET Supply: 0
_10
├── Total Collateral Locked: $0
_10
├── Active Positions: 0
_10
└── Utilization: N/A

Day 7: Early Adoption


_11
User Activity:
_11
├── 10 users deposit collateral
_11
├── Total collateral value: $100,000
_11
├── Average CF: 0.8, Average Target HF: 1.3
_11
├── Total borrowed: $61,538 MOET
_11
_11
Supply Metrics:
_11
├── Total MOET Supply: 61,538 tokens
_11
├── Backing: $100,000 collateral
_11
├── Average Collateralization: 162.5%
_11
└── System Health: All positions HF > 1.3

Day 30: Growth Phase


_12
Market Activity:
_12
├── 100 users with active positions
_12
├── Total collateral value: $5,000,000
_12
├── Total borrowed: $3,076,923 MOET
_12
├── Accrued interest (30 days @ 10% APY): ~$25,000
_12
_12
Supply Metrics:
_12
├── Total MOET Supply: 3,101,923 tokens
_12
│ ├── Principal: 3,076,923 MOET
_12
│ └── Interest: ~25,000 MOET
_12
├── Utilization: 62% (assuming $2M deposited, $3.1M borrowed capacity)
_12
└── Interest Rate: ~8% APY (moderate utilization)

Day 90: Market Volatility


_17
Price Crash Scenario:
_17
├── Collateral values drop 30%
_17
├── Remaining collateral value: $3,500,000
_17
├── Outstanding debt: 3,101,923 MOET
_17
├── Many positions approach liquidation
_17
_17
Automated Response:
_17
├── FYV provides: 500,000 MOET for debt repayment
_17
├── ALP burns: 500,000 MOET
_17
├── New supply: 2,601,923 MOET
_17
├── System health restored
_17
_17
Supply Metrics After Rebalancing:
_17
├── Total MOET Supply: 2,601,923 tokens (-16%)
_17
├── Collateral value: $3,500,000
_17
├── Average HF restored to: 1.3
_17
└── Crisis averted through automated deleveraging

Key Insight: Supply contracts during market stress as positions automatically deleverage, reducing systemic risk.

Minting Mechanics

MOET tokens are created through a controlled minting process integrated with ALP borrowing operations.

Minter Resource

Contract Implementation:


_13
// Minter resource (simplified)
_13
access(all) resource Minter {
_13
access(all) fun mintTokens(amount: UFix64): @MOET.Vault {
_13
// Create new MOET tokens
_13
MOET.totalSupply = MOET.totalSupply + amount
_13
_13
// Emit event for transparency
_13
emit TokensMinted(amount: amount)
_13
_13
// Return vault with minted tokens
_13
return <-create Vault(balance: amount)
_13
}
_13
}

Access Control:

  • Who Can Mint: Only the account holding the Minter resource
  • Storage: Stored at admin storage path on protocol deployer account
  • Current Status: Centralized (single Minter created at contract initialization)
  • Production Plans: Should transition to multi-sig or decentralized minting

Minting Trigger Flow

User-Initiated Borrowing:


_31
Step 1: User Deposits Collateral
_31
├── User calls: ALP.deposit(1000 FLOW)
_31
├── Position created with: collateralID
_31
└── Collateral locked in Pool reserves
_31
_31
Step 2: Borrow Capacity Calculation
_31
├── Collateral value: 1000 × $1.00 = $1,000
_31
├── Collateral factor: 0.8
_31
├── Effective collateral: $800
_31
├── Target health: 1.3
_31
├── Max borrow: $800 / 1.3 = $615.38
_31
└── Borrowable amount determined
_31
_31
Step 3: Minting Request
_31
├── ALP calls: Minter.mintTokens(615.38)
_31
├── Minter creates: 615.38 new MOET tokens
_31
├── Vault returned to: ALP Pool
_31
└── Event emitted: TokensMinted(amount: 615.38, ...)
_31
_31
Step 4: Debt Recording
_31
├── Position debt set to: 615.38 MOET (scaled balance)
_31
├── Interest index captured: I₀
_31
├── Position state updated: {collateral: 1000 FLOW, debt: 615.38 MOET}
_31
└── Health factor: 1.30
_31
_31
Step 5: Token Distribution
_31
├── If pushToDrawDownSink=true:
_31
│ └── MOET flows to: FYV strategy
_31
├── If pushToDrawDownSink=false:
_31
│ └── MOET sent to: User's wallet
_31
└── User can now utilize MOET for yield farming

Automated Rebalancing (HF > 1.5):


_16
Scenario: Collateral Price Increases
_16
├── Original: 1000 FLOW @ $1.00, debt 615.38 MOET
_16
├── New price: FLOW @ $1.50 (+50%)
_16
├── New collateral value: $1,500
_16
├── Effective collateral: $1,500 × 0.8 = $1,200
_16
├── Current HF: $1,200 / $615.38 = 1.95 > 1.5 ⚠️
_16
└── Opportunity for more leverage
_16
_16
Automated Minting:
_16
├── Target HF: 1.3
_16
├── New max debt: $1,200 / 1.3 = $923.08
_16
├── Additional borrow: $923.08 - $615.38 = $307.70
_16
├── ALP mints: 307.70 MOET
_16
├── Debt updated: 615.38 → 923.08 MOET
_16
├── HF restored: $1,200 / $923.08 = 1.30 ✓
_16
└── Extra MOET flows to FYV for yield generation

Minting Limits and Controls

Current Implementation (Mock):

  • No Hard Cap: Unlimited MOET can be minted
  • Collateral Constraint: Minting limited by available collateral and CF/HF ratios
  • Implicit Cap: Total supply ≤ (Total Collateral Value × Average CF) / Average Target HF

Production Requirements:


_13
Recommended Limits:
_13
├── Per-Transaction Limit: e.g., max 100,000 MOET per mint
_13
├── Daily Minting Cap: e.g., max 1,000,000 MOET per 24 hours
_13
├── Total Supply Cap: e.g., 100,000,000 MOET absolute maximum
_13
├── Emergency Pause: Ability to halt minting during crises
_13
└── Multi-Sig Approval: Require 3-of-5 signatures for minting
_13
_13
Risk Mitigation:
_13
├── Prevents single-transaction exploits
_13
├── Limits daily supply inflation
_13
├── Creates upper bound for systemic risk
_13
├── Enables crisis response
_13
└── Reduces centralization risk

Burning Mechanics

MOET tokens are permanently destroyed when debt is repaid, automatically reducing total supply.

Burn Callback

Contract Implementation:


_20
// Automatic burn on vault destruction
_20
access(contract) fun burnCallback() {
_20
if self.balance > 0 {
_20
// Reduce total supply
_20
MOET.totalSupply = MOET.totalSupply - self.balance
_20
_20
// Emit event
_20
emit TokensBurned(amount: self.balance)
_20
_20
// Zero out balance before destruction
_20
self.balance = 0
_20
}
_20
}
_20
_20
// Called when vault is destroyed
_20
destroy() {
_20
// Automatic burn before destruction
_20
self.burnCallback()
_20
// Vault destroyed
_20
}

Key Features:

  • Automatic: Burns happen automatically when vaults are destroyed
  • Supply Accounting: Ensures total supply always accurate
  • Transparent: Events emitted for every burn operation
  • Irreversible: Destroyed MOET cannot be recovered

Burning Trigger Flow

Debt Repayment:


_27
Step 1: User Initiates Repayment
_27
├── User's position: 615.38 MOET debt
_27
├── User has: 615.38 MOET in wallet
_27
└── User calls: ALP.repay(615.38 MOET)
_27
_27
Step 2: Token Transfer
_27
├── MOET transferred from: User's wallet
_27
├── MOET transferred to: ALP Pool
_27
└── Vault received by protocol
_27
_27
Step 3: Debt Settlement
_27
├── Position debt reduced: 615.38 → 0 MOET
_27
├── Scaled balance updated: 0
_27
├── Interest index: Captured for final calculation
_27
└── Position debt cleared
_27
_27
Step 4: Automatic Burn
_27
├── ALP destroys received vault: destroy moetVault
_27
├── burnCallback() executed automatically
_27
├── Total supply reduced: 615.38 MOET
_27
├── Event emitted: TokensBurned(amount: 615.38)
_27
└── MOET permanently removed from circulation
_27
_27
Step 5: Collateral Release
_27
├── With debt = 0, HF = infinite
_27
├── User can withdraw: All collateral
_27
└── Position can be closed

Liquidation Burning:


_27
Scenario: Underwater Position
_27
├── Collateral: 1000 FLOW @ $0.60 = $600
_27
├── Effective collateral: $600 × 0.8 = $480
_27
├── Debt: 615.38 MOET
_27
├── HF: $480 / $615.38 = 0.78 < 1.0 ⚠️
_27
└── Position liquidatable
_27
_27
Liquidator Action:
_27
├── Liquidator has: 200 MOET
_27
├── Calls: ALP.liquidate(positionID, 200 MOET)
_27
└── Goal: Profit from liquidation bonus
_27
_27
Burning Process:
_27
├── Step 1: Receive 200 MOET from liquidator
_27
├── Step 2: Calculate collateral seizure
_27
│ └── Seized: (200 × 1.05) / $0.60 = 350 FLOW
_27
├── Step 3: Transfer 350 FLOW to liquidator
_27
├── Step 4: Reduce position debt: 615.38 → 415.38 MOET
_27
├── Step 5: Destroy 200 MOET vault (automatic burn)
_27
├── Step 6: Total supply: Reduced by 200 MOET
_27
└── Step 7: Position remains open with 650 FLOW, 415.38 MOET debt
_27
_27
Result:
_27
├── 200 MOET permanently burned
_27
├── System becomes more solvent (debt ↓, collateral remains)
_27
├── Liquidator profits incentivize future liquidations
_27
└── Peg pressure alleviated (supply reduction)

Automated Rebalancing Burn (HF < 1.1):


_18
Scenario: Collateral Price Drop
_18
├── Original: 1000 FLOW @ $1.00, debt 615.38 MOET
_18
├── New price: FLOW @ $0.85 (-15%)
_18
├── New collateral value: $850
_18
├── Effective collateral: $850 × 0.8 = $680
_18
├── Current HF: $680 / $615.38 = 1.11 > 1.0 but < 1.1 ⚠️
_18
└── Below minimum threshold
_18
_18
Automated Burning:
_18
├── Target HF: 1.3
_18
├── New target debt: $680 / 1.3 = $523.08
_18
├── Must repay: $615.38 - $523.08 = $92.30 MOET
_18
├── ALP pulls from TopUpSource (FYV)
_18
├── FYV provides: 92.30 MOET (from yield)
_18
├── ALP burns: 92.30 MOET (debt repayment)
_18
├── Debt updated: 615.38 → 523.08 MOET
_18
├── HF restored: $680 / $523.08 = 1.30 ✓
_18
└── Supply reduced: 615.38 → 523.08 MOET

Burn Rate Analysis

Factors Influencing Burn Rate:


_13
High Burn Rate (Supply Contracts):
_13
├── Market downturns → Forced deleveraging
_13
├── Rising interest rates → Incentivized repayment
_13
├── Liquidations → Debt cleared by liquidators
_13
├── Yield maturity → FYV returns exceed new borrowing
_13
└── Collateral appreciation → Users reduce leverage
_13
_13
Low Burn Rate (Supply Expands):
_13
├── Bull markets → More borrowing demand
_13
├── Low interest rates → Cheap capital attracts users
_13
├── High yield opportunities → More FYV deployment
_13
├── New collateral types → Expanded borrowing capacity
_13
└── Protocol growth → More users entering system

Example Burn Scenarios:


_17
Bear Market (30 Days):
_17
├── Total supply start: 3,100,000 MOET
_17
├── Liquidations: -200,000 MOET burned
_17
├── Auto-rebalancing: -500,000 MOET burned
_17
├── Voluntary repayment: -300,000 MOET burned
_17
├── New borrowing: +150,000 MOET minted
_17
├── Net change: -850,000 MOET
_17
└── Total supply end: 2,250,000 MOET (-27.4%)
_17
_17
Bull Market (30 Days):
_17
├── Total supply start: 2,250,000 MOET
_17
├── New borrowing: +800,000 MOET minted
_17
├── Auto-leverage: +300,000 MOET minted
_17
├── Repayments: -150,000 MOET burned
_17
├── Liquidations: -50,000 MOET burned
_17
├── Net change: +900,000 MOET
_17
└── Total supply end: 3,150,000 MOET (+40%)

Key Insight: Supply naturally contracts during stress (reducing risk) and expands during growth (increasing capital efficiency).

Interest Rate Model

MOET borrowing costs are determined by a utilization-based interest rate curve that automatically balances supply and demand.

Utilization Rate


_10
Utilization Rate (U) = Total MOET Borrowed / Total MOET Available
_10
_10
Components:
_10
├── Total MOET Borrowed: Sum of all debt across positions
_10
├── Total MOET Available: MOET deposited + mintable capacity
_10
└── Range: 0% (no borrowing) to 100% (fully utilized)

Interest Rate Curve

Kink Model (similar to Compound/Aave):


_12
Rate Calculation:
_12
├── If U ≤ Optimal Utilization (e.g., 80%):
_12
│ └── Rate = BaseRate + (U / OptimalU) × Multiplier
_12
└── If U > Optimal Utilization:
_12
└── Rate = BaseRate + Multiplier + ((U - OptimalU) / (1 - OptimalU)) × JumpMultiplier
_12
_12
Example Parameters:
_12
├── BaseRate: 2% APY
_12
├── Multiplier: 8% APY
_12
├── OptimalUtilization: 80%
_12
├── JumpMultiplier: 40% APY
_12
└── MaxRate: 50% APY (at 100% utilization)

Visual Representation:


_16
Interest Rate vs. Utilization
_16
_16
50% │ ╱
_16
│ ╱
_16
40% │ ╱
_16
│ ╱
_16
30% │ ╱
_16
│ ╱
_16
20% │ ╱╱╱← Kink at 80% utilization
_16
│ ╱╱╱
_16
10% │ ╱╱╱
_16
│ ╱╱╱
_16
2% │╱╱╱╱╱╱╱
_16
└─────────────────────────────────────
_16
0% 20% 40% 60% 80% 100%
_16
Utilization Rate

Interest Rate Examples

Low Utilization (20%):


_17
Market Conditions:
_17
├── Total MOET capacity: 10,000,000
_17
├── Total MOET borrowed: 2,000,000
_17
├── Utilization: 20%
_17
└── Plenty of available capital
_17
_17
Interest Rate Calculation:
_17
├── U = 20% < 80% (below kink)
_17
├── Rate = 2% + (20%/80%) × 8%
_17
├── Rate = 2% + 0.25 × 8%
_17
├── Rate = 2% + 2%
_17
└── Borrowing Cost: 4% APY
_17
_17
Market Effect:
_17
├── Cheap borrowing encourages more positions
_17
├── Lenders earn low yield (limited demand)
_17
└── System incentivizes borrowing to increase utilization

Optimal Utilization (80%):


_17
Market Conditions:
_17
├── Total MOET capacity: 10,000,000
_17
├── Total MOET borrowed: 8,000,000
_17
├── Utilization: 80%
_17
└── Balanced market
_17
_17
Interest Rate Calculation:
_17
├── U = 80% (at kink)
_17
├── Rate = 2% + (80%/80%) × 8%
_17
├── Rate = 2% + 1.0 × 8%
_17
├── Rate = 2% + 8%
_17
└── Borrowing Cost: 10% APY
_17
_17
Market Effect:
_17
├── Moderate borrowing cost
_17
├── Lenders earn attractive yield
_17
└── System in equilibrium

High Utilization (95%):


_19
Market Conditions:
_19
├── Total MOET capacity: 10,000,000
_19
├── Total MOET borrowed: 9,500,000
_19
├── Utilization: 95%
_19
└── Capital constrained
_19
_19
Interest Rate Calculation:
_19
├── U = 95% > 80% (above kink)
_19
├── Rate = 2% + 8% + ((95% - 80%) / (100% - 80%)) × 40%
_19
├── Rate = 10% + (15% / 20%) × 40%
_19
├── Rate = 10% + 0.75 × 40%
_19
├── Rate = 10% + 30%
_19
└── Borrowing Cost: 40% APY
_19
_19
Market Effect:
_19
├── Very expensive borrowing discourages new positions
_19
├── High rates incentivize debt repayment
_19
├── Lenders earn exceptional yield
_19
└── System self-balances toward optimal utilization

Compound Interest Accrual

MOET uses continuous compounding through the scaled balance system:

Interest Index Growth:


_17
Index Update Formula:
_17
I(t+1) = I(t) × (1 + r × Δt)
_17
_17
Where:
_17
├── I(t): Current interest index
_17
├── r: Interest rate per second
_17
├── Δt: Time elapsed since last update
_17
└── I(t+1): New interest index
_17
_17
Example (10% APY):
_17
├── I₀ = 1.0 (initial)
_17
├── r = 10% / (365.25 × 24 × 3600) = 3.17 × 10⁻⁹ per second
_17
├── After 30 days:
_17
│ ├── Δt = 30 × 24 × 3600 = 2,592,000 seconds
_17
│ ├── I₃₀ = 1.0 × (1 + 3.17×10⁻⁹ × 2,592,000)
_17
│ └── I₃₀ ≈ 1.00821 (0.821% growth in 30 days)
_17
└── After 1 year: I₃₆₅ ≈ 1.10517 (10.517% including compounding)

User Debt Calculation:


_14
True Debt = Scaled Balance × Current Index
_14
_14
Example:
_14
├── User borrows: 1,000 MOET at I₀ = 1.0
_14
├── Scaled balance stored: 1,000
_14
├── After 1 year: I₃₆₅ = 1.10517
_14
├── True debt: 1,000 × 1.10517 = 1,105.17 MOET
_14
└── Interest accrued: 105.17 MOET (10.517%)
_14
_14
Gas Efficiency:
_14
├── Only global index updated per block
_14
├── Individual balances never updated in storage
_14
├── Calculation performed on-demand
_14
└── Scales to millions of positions efficiently

Economic Incentives

MOET's tokenomics create aligned incentives for all participants:

For Borrowers

Benefits:


_17
Cheap Leverage:
_17
├── Borrow at: 5-10% APY (typical)
_17
├── Deploy to FYV yielding: 10-20% APY
_17
├── Net profit: 5-10% APY on borrowed capital
_17
└── Amplified returns on collateral
_17
_17
Capital Efficiency:
_17
├── 1000 FLOW collateral → 615 MOET borrowed
_17
├── Total exposure: 1615 MOET equivalent
_17
├── Effective leverage: 1.615x
_17
└── Higher returns than holding collateral alone
_17
_17
Automated Protection:
_17
├── FYV yield auto-repays during downturns
_17
├── No manual position management needed
_17
├── Reduced liquidation risk
_17
└── Peace of mind

Costs:


_10
Interest Payments:
_10
├── Debt grows at: Current APY (5-40%)
_10
├── Must be repaid eventually
_10
└── Erodes profits if yield < interest
_10
_10
Liquidation Risk:
_10
├── If HF < 1.0, position liquidatable
_10
├── Lose collateral (minus debt)
_10
├── 5% penalty to liquidator
_10
└── Must monitor position health

For Liquidators

Profit Opportunity:


_13
Liquidation Profit:
_13
├── Repay: X MOET of underwater debt
_13
├── Receive: X × (1 + bonus) / collateral_price in collateral
_13
├── Bonus: Typically 5%
_13
└── Risk-free arbitrage when HF < 1.0
_13
_13
Example:
_13
├── Repay: 1,000 MOET
_13
├── Collateral: FLOW @ $0.80
_13
├── Receive: (1,000 × 1.05) / $0.80 = 1,312.5 FLOW
_13
├── Value: 1,312.5 × $0.80 = $1,050
_13
├── Profit: $1,050 - $1,000 = $50 (5%)
_13
└── Incentivizes holding MOET for liquidation opportunities

Requirements:


_10
Capital Needed:
_10
├── Must hold MOET to liquidate
_10
├── Larger positions = more profit
_10
└── Creates natural MOET demand
_10
_10
Monitoring:
_10
├── Run keeper bots to detect liquidations
_10
├── Gas costs for transactions
_10
├── Competition with other liquidators
_10
└── Requires technical infrastructure

For Protocol (DAO/Treasury)

Revenue Streams (future implementation):


_13
Protocol Fees:
_13
├── Interest spread: 10% of interest paid
_13
├── Liquidation fees: 1% of liquidated value
_13
├── Minting fees: Small fee on MOET creation
_13
└── Withdrawal fees: Small fee on collateral withdrawal
_13
_13
Example Revenue (1 month):
_13
├── Total debt: 10,000,000 MOET @ 10% APY
_13
├── Monthly interest: 10,000,000 × 0.10 / 12 = 83,333 MOET
_13
├── Protocol fee: 83,333 × 0.10 = 8,333 MOET
_13
├── Liquidations: 500,000 MOET × 0.01 = 5,000 MOET
_13
├── Total revenue: 13,333 MOET/month
_13
└── Use for: Development, security audits, reserves

Token Metrics Summary

Supply Characteristics:

MetricValue
Initial Supply0 MOET (mainnet/testnet), 1M MOET (emulator)
Max SupplyUnlimited (constrained by collateral)
Supply TypeDynamic (elastic)
IssuanceMint-on-borrow
DestructionBurn-on-repay (automatic)
BackingOver-collateralized debt positions

Economic Parameters:

ParameterTypical Value
Collateral Factor0.8 (80%)
Target Health Factor1.3
Collateralization Ratio162.5%
Base Interest Rate2% APY
Optimal Utilization80%
Max Interest Rate50% APY
Liquidation Bonus5%
Minimum Health Factor1.0 (liquidation threshold)

Growth Metrics Example:


_17
Month 1:
_17
├── Supply: 1,000,000 MOET
_17
├── Collateral: $1,625,000
_17
├── Positions: 50
_17
└── Utilization: 40%
_17
_17
Month 6:
_17
├── Supply: 10,000,000 MOET (+900%)
_17
├── Collateral: $16,250,000 (+900%)
_17
├── Positions: 500 (+900%)
_17
└── Utilization: 65% (+62.5%)
_17
_17
Month 12:
_17
├── Supply: 50,000,000 MOET (+400%)
_17
├── Collateral: $81,250,000 (+400%)
_17
├── Positions: 2,500 (+400%)
_17
└── Utilization: 75% (+15.4%)

Next Steps