Skip to main content

MOAI staking: earn RD

MOAI is the protocol's value-capture token. Stakers in the MOAIStaking contract earn a share of the protocol fees that reach the GlobalFeeRouter, paid out in RD.

Stakers commit to a lockup tier when they stake. Longer lockups earn higher multipliers while the lock is active.

What stakers earn, and what they don't​

  • Earn: what remains of the GlobalFeeRouter's RD after keeper rewards and the LP share. That RD comes from borrow interest on every active branch (the part not kept by the branch's Stability Pool), the 0.25% redemption protocol fee, and early-repayment fees. The router mints the RD into the staking contract and updates the per-share index.
  • Do not earn: branch redemption fees. Those are retained by the redeemed trove as residual collateral, not routed to stakers. (Mechanically: when a redeemer takes collateral out of a trove, only the net-of-fee amount actually leaves the trove; the fee portion stays inside the trove and increases its post-redemption ICR.)

So MOAI staking is mainly a play on borrow activity, with a smaller contribution from redemption volume through the protocol fee.

The three tiers​

TierLockupMultiplier
07 days1.0×
130 days1.15×
260 days1.5×

The multiplier scales how big your share of the fee distribution is, relative to your stake size. While its lock is active, a Tier 2 position with 100 MOAI has the same claim on rewards as 150 MOAI of Tier 0 stake. The extra weight applies only while the lock is active: once the lock expires (rounded up to the next 6-hour boundary, BONUS_EPOCH_DURATION), the position counts at 1.0× until it is re-locked. The multipliers and lockup lengths are fixed protocol constants.

How rewards flow​

  1. A borrower pays interest. Their branch's fee router collects the RD.
  2. The branch's fee router sends a fraction directly into the local Stability Pool (folded into depositor balances) and forwards the rest to the singleton GlobalFeeRouter. The redemption protocol fee and early-repayment fees go to the GlobalFeeRouter in full.
  3. The GlobalFeeRouter tops up keeper rewards, pays the LP share, and sends the remainder to MOAI staking. If a shut-down branch has bad debt, up to half of the MOAI-staker share is diverted to repaying it (the LP share is unaffected) — see Fees.
  4. The portion routed to MOAI staking is minted as RD into the staking contract, which updates the per-share index. Your pending RD gain grows. The staker share is paid only when it is at least 1 RD and some MOAI is staked; otherwise it is carried forward to the next distribution.

You claim with claimReward(). Staking, unstaking and changing tier also pay out your pending rewards. There's no batch-claim deadline; rewards accumulate until you claim them.

Staking​

There are two ways to stake:

  • stake(amount) — opens a new position at Tier 0, or tops up an active position at its current tier. It reverts once your lockup has expired; the protocol forces an explicit re-lock decision instead.
  • stakeWithTier(amount, tier) — opens a new position at the tier you choose, tops up an active position at the same tier (a different tier reverts), or re-locks an expired position at any tier.

Every successful stake restarts the lock at the full length of the position's tier, counted from now. Topping up 20 days into a 30-day lock leaves you locked for another 30 days.

To change tier without adding MOAI, call changeTier(newTier). You can move up at any time (the lock restarts at the new tier's length). You can move down, or re-lock at the same tier, only after the lock has expired.

Developer reference: Earning for the stake calls and tier constants.

Unstaking​

You can unstake any time after your lockup has expired. Before expiry, you can claim pending RD rewards but you cannot withdraw the MOAI principal.

When you unstake, pending RD rewards are paid out automatically. A partial unstake keeps your tier and lock expiry for the rest. Unstaking your full position closes it and frees you to start again at any tier.

What you actually receive​

  • RD only, from the protocol fees routed through the GlobalFeeRouter.

If you want collateral exposure as part of your staking story, the protocol offers two other paths: Stability Pool deposits (which take collateral gains from liquidations) and LP staking (which earns MOAI plus direct RD inflows). MOAI staking is the pure-RD path.

When does MOAI staking pay best?​

  • High borrow activity. More outstanding debt across branches means more interest accruing, more RD flowing through the routers into stakers.
  • Long-tier stake. The 1.5× multiplier on a 60-day lockup is a meaningful share boost vs. 7-day.

The share left for stakers also depends on the MOAI emission schedule: the minimum shares of fees reserved for Stability Pools and LPs stay at 10% through month 12 of the schedule, then rise toward 35% as emissions taper, so once emissions end MOAI stakers receive at most 30% of fees (see Fees).

It pays worst during very quiet periods (no borrowing growth), while a bad-debt sink is diverting part of the staker share, and during the 14-day bootstrap window, when borrowing on each branch is capped and redemption (and with it the redemption protocol fee) is disabled.

Common gotchas​

  • Topping up an expired position. A plain stake reverts once your lockup has expired — the protocol forces an explicit re-lock decision with stakeWithTier. This is intentional: it prevents accidental auto-renewals.
  • Switching tiers. Use changeTier. Staking with a different tier while your lock is active reverts.
  • Expired locks lose the multiplier. After the lock expires your position earns at 1.0× until you re-lock.
  • Topping up restarts the lock. Any stake into an active position resets its expiry to a full tier length from now.

Deep dive​