šŸ‘©ā€šŸ”¬Equations

Staking

deposit=withdrawaldeposit = withdrawal

Swaps between MAIA and sMAIA during staking and unstaking are always honored 1:1. The amount of MAIA deposited into the staking contract will always result in the same amount of sMAIA. And the amount of sMAIA withdrawn from the staking contract will always result in the same amount of MAIA.

rebase=1āˆ’(MAIADeposits/sMAIAOutstanding)rebase= 1 - ( MAIADeposits / sMAIA Outstanding )

The treasury deposits MAIA into the distributor. The distributor then deposits MAIA into the staking contract, creating an imbalance between MAIA and sMAIA. sMAIA is rebased to correct this imbalance between MAIA deposited and sMAIA outstanding. The rebase brings sMAIA outstanding back up to parity so that 1 sMAIA equals 1 staked MAIA.

Minting

Minting happens by allowing users to purchase a bond. This bond price is the Mint price.

bondPrice=1+PremiumbondPrice= 1 + Premium

MAIA has an intrinsic value of 1 m.USDC, which is roughly equivalent to $1. In order to make a profit from minting, Maia charges a premium for each minting action.

Premium=debtRatioāˆ—BCVPremium= debt Ratio * BCV

The premium is derived from the debt ratio of the system and a scaling variable called BCV. BCV allows us to control the rate at which bond prices increase.

The premium determines profit due to the protocol and in turn, stakers. This is because new MAIA is minted from the profit and subsequently distributed among all stakers.

debtRatio=bondsOutstanding/MAIASupplydebtRatio = bondsOutstanding/MAIASupply

The debt ratio is the total of all MAIA promised to bonders divided by the total supply of MAIA. This allows us to measure the debt of the system.

bondPayoutreserveBond=marketValueassetĀ /Ā bondPricebondPayout_{reserveBond}= marketValue_{asset}\ /\ bondPrice

Bond payout determines the number of MAIA sold to a minter. For reserve mints, the market value of the assets supplied by the minter is used to determine the bond payout. For example, if a user supplies 1000 m.USDC and the mint price is 250 m.USDC, the user will be entitled 4 MAIA.

bondPayoutlpBond=marketValuelpTokenĀ /Ā bondPricebondPayout_{lpBond}= marketValue_{lpToken}\ /\ bondPrice

For liquidity mints, the market value of the LP tokens supplied by the minter is used to determine the bond payout. For example, if a user supplies 0.001 MAIA-m.USDC LP token which is valued at 1000 m.USDC at the time of bonding, and the bond price is 250 m.USDC, the user will be entitled 4 MAIA.

MAIA Supply

MAIAsupplyGrowth=MAIAstakers+MAIAbondersMAIA_{supplyGrowth}= MAIA_{stakers} + MAIA_{bonders}

MAIA supply does not have a hard cap. Its supply increases when:

  • MAIA is minted and distributed to the stakers.

  • MAIA is minted for the bonder. This happens whenever someone purchases a bond.

  • No MAIA is minted for the DAO.

MAIAstakers=MAIAtotalSupplyāˆ—rewardRateMAIA_{stakers} = MAIA_{totalSupply} * rewardRate

At the end of each epoch, the treasury mints MAIA at a set reward rate. These MAIA will be distributed to all the stakers in the protocol.

MAIAbonders=bondPayoutMAIA_{bonders}=bondPayout

Whenever someone purchases a bond, a set number of MAIA is minted. These MAIA will not be released to the minter all at once - they are vested to the bonder linearly over time. The bond payout uses a different formula for different types of bonds. Check the Minting section above to see how it is calculated.

The DAO does not receive any MAIA.

Backing per MAIA

MAIAbacking=treasuryBalancestablecoin+treasuryBalanceotherAssetsMAIA_{backing}= treasuryBalance_{stablecoin} + treasuryBalance_{otherAssets}

Every MAIA in circulation is backed by the Maia treasury. The assets in the treasury can be divided into two categories: stablecoin and non-stablecoin.

treasuryBalancestablecoin=BackingPerMAIAreserveBond+BackingPerMAIAlpBondtreasuryBalance_{stablecoin}= BackingPerMAIA_{reserveBond} + BackingPerMAIA_{lpBond}

The stablecoin balance in the treasury grows when bonds are sold. Backing per MAIA is calculated differently for different mints types.

BackingPerMAIAreserveBond=assetSuppliedBackingPerMAIA_{reserveBond} = assetSupplied

For reserve mints such as m.USDC minting, the Backing per MAIA simply equals to the amount of the underlying asset supplied by the minter.

BackingPerMAIAlpBond=2sqrt(constantProduct)āˆ—(%Ā ownershipĀ ofĀ theĀ pool)BackingPerMAIA_{lpBond}= 2sqrt(constantProduct) * (\%\ ownership\ of\ the\ pool)

For LP Mints such as MAIA-m.USDC Minting, the Backing Per MAIA is calculated differently because the protocol needs to mark down its value. Why? The LP token pair consists of MAIA, and each MAIA in circulation will be backed by these LP tokens - there is a cyclical dependency. To safely guarantee all circulating MAIA are backed, the protocol marks down the value of these LP tokens.

Last updated