Protocol Design

The ASTΞROIÐ protocol consists of multiple components working together to keep the whole economics sound and sustainable. $ROID token is a utility token in the protocol used for the posting fee and community staking to balance out the token price and the reward amount.
The key components are Emission Control, Arbitrary Fee Rate, Social Tipping, Variable Posting Fee, Astar Dapp Staking, Voting Powers ( IVP / ACVP / CVP ), Community Fund, Community Listings, Community Staking, super ROID token, and Creator Rewards.
The protocol will aim to start the token price at about $0.3 at the IDO and gradually raise it to $1.0 in 2 years, then put the token price in stable mode to loosely peg with USD.
The supply and demand will be balanced by mathematical formulas involving the variable Posting Fee (deflation), Creator Rewards & Staking Rewards (inflation), and super ROID conversion (risk hedge) to loosely control the token price.

Emission Control

We think emission control is necessary for any unbreakable token designs to balance out supply and demand. At the same time, the emission scheduling can be somewhat flexible as long as it's mathematically calculated and auto-adjusted on smart contracts. We designed the emission rates using a bezier curve with 4 points (Start 0,0 : CTL1 100, 70 : CTL2 0, 70 : End 100, 100). The curve was designed to accelerate growth until a bit after the mid-point, and then gradually slow down the emission rate towards stability.
Let Circulation C and Price Floor PF, the Treasury Value TV = C * PF. Due to the complexity of 3rd order bezier curves, the circulation cannot be directly calculated from the treasury value (TV). We first need to empirically find a constant T that makes up the closest TV = C * PF within the specified precision.
Circulation=(300T(1T)2+100T3)×1,000,000,000Circulation = (300T(1 - T)^2 + 100T^3) \times 1,000,000,000
PriceFloor=210T(T1)2+210(T1)T2+100T3100PriceFloor = \frac{210T(T - 1)^2 + 210(T - 1)T^2 + 100T^3}{100}
TreasuryValue=Circulation×PriceFloorTreasuryValue = Circulation \times PriceFloor

Arbitrary Fee Rate

The foundation of the ASTΞROIÐ protocol is the gift economy of social tipping. Creators can set an Arbitrary FeeRate for each article, and based on the FeeRate, a portion of tips will be contributed to the protocol treasury.
ProtocolFee=FeeRate×TipAmountProtocolFee = FeeRate\times TipAmount

Tipping & Voting Power

When a tipping event happens, the supporter will get IVP ( Investor Voting Power), and the article will get ACVP ( Article-Community Voting Power). IVP is the same amount as the ProtocolFee.
IVP=ProtocolFeeIVP = ProtocolFee
​ACVP is the ProtocolFee divided by the number of communities the article is posted to. This gamifies the relationship between creators and supporters.
ACVP=ProtocolFeeNumberOfCommunitiesACVP = \frac{ProtocolFee}{NumberOfCommunities}
IVP and ACVP are both non-transferable points, and they have different roles.
IVP is used for the periodical budget allocation votings that control which communities get how much budget from the Astar Dapp Staking rewards (and the supplemental $ROID rewards). So the more IVP you have, the more control you have over the reward distribution.
On the other hand, ACVP is used to determine how much reward each article within each community should receive. So the more ACVP your articles have, the more reward you get from the communities they are posted to. The higher the tip amount and the arbitrary fee rate set on the article, the more IVP and ACVP will be given to each side, respectively.
Tips are sent and calculated in $ASTR, so the values of IVP and the total values of ACVP for an article are equivalent to the ProtocolFee contributed to the treasury in $ASTR through tipping.

Community Budget Allocation

The creator rewards given out by the protocol will be first allocated to communities by budget voting. And to vote for communities, you will need IVP. The votings are periodical and the reward distributions are seasonal, which is initially set to 2 weeks. So every 2 weeks, there is a voting period to determine how much budget each community should get for the next season.
The communities ( or projects ) that can participate in the voting and receive a budget need to be approved through the listing process. This is just like crypto exchanges listing tokens. Once your project is listed on the ASTΞROIÐ protocol, the project will get a budget for each season and creators can write articles about your project to get creator rewards. So your project will automatically get budgets to distribute to your community and creators will autonomously contribute to your project.
The criteria to be listed will initially be a successful application for the Astar Builders Program. So if your project has been approved for the Builders Program, it can also be listed on ASTΞROIÐ.

Community Budgets

First, the total reward amount for the next season will be determined by the circulation capacity minus the current circulation divided by 4. The circulation capacity is determined by the current treasury value and the bezier curve.
TotalReward=CirculationCapacityCurrentCirculation4TotalReward = \frac{CirculationCapacity - CurrentCirculation}{4}
The Creator reward will be first allocated to the listed communities by voting. To vote for communities, you need to consume your IVP. Staked amounts for each community count as 50% of the voting power.
Budget=TotalReward×Votes2×TotalVotes+StakedAmount2×TotalStakedAmountBudget = TotalReward \times \frac{Votes}{2 \times TotalVotes} + \frac{StakedAmount}{2 \times TotalStakedAmount}

Creator Rewards


To break down PVP a bit more, PVP is also recorded for article-community combinations in each season.
Let's say, you set 6% FeeRate to an article, and someone tipped 100 ASTR on that article. The PVP you get will be
PVP=100ASTR×0.06=6PVP = 100ASTR \times 0.06 = 6
Then let's say the article has been posted to 3 communities equally. You can assign topics to your article when you tokenize it with different weights. And the PVP will be divided into topics based on the weights. So in this case, 6 PVP will be divided by 3 topics equally. Let's call it ACVP (Article-Community Voting Power).
ACVP=6PVP1+1+1=2ACVP = \frac{6PVP}{1 + 1 + 1} = 2
At the same time, each community will get the same amount of CVP (Community Voting Power). To be added to CVP, the article has to reach the MinimumACVP which is also the minimum value to be eligible for rewards.
CVP+=ACVPCVP \mathrel{+}= ACVP

Minimum ACVP

Each article has to reach the MinimumACVP set by the protocol to receive rewards. If the ACVP is below the minimum ACVP, your article won't get rewards for the topic in the season. The minimumACVP is initially set to 1.
For example, with the same settings above, your article needs to get at least 50 ASTR worth of tips to reach 1 ACVP for each topic to be eligible for rewards in each season. ACVP and CVP will be reset for a new season.

Article Rewards

Then, the CommunityBudget will be distributed to eligible articles on the topic.
ArticleReward=CommunityBudget×ACVPCVPArticleReward = \frac{CommunityBudget\times ACVP}{CVP}

Variable Posting Fee

When posting articles, creators need to pay a small amount of fee in $ROID, and the fee is variable based on many metrics. This PostingFee is what balances the whole tokenomics and keeps it sound and sustainable. The PostingFee works like GAS for blockchain transactions.

Target Price

The protocol tries to balance the economics based on various outer factors. It aims to drive the token price up to $1 in 2 years and stabilize it afterward to become a loosely pegged token to USD. In each season, there will be a target price for $ROID calculated by a formula (TBA).

DEX Liquidity

Let's oversimplify the DEX math. Uniswap-based DEXes have this simple formula.
K=LiquidityASTR×LiquidityROIDK = LiquidityASTR \times LiquidityROID
And the price of 1 ROID can be calculated as below.
PriceRoid=LiquidityASTRPriceASTRLiquidityROIDPriceRoid = \frac{LiquidityASTR * PriceASTR}{LiquidityROID}
When we have a target price, how much ROID we would need to remove from the DEX can be calculated as below.
LiquidityROIDToRemove=K×PriceASTRTargetPriceROIDLiquidityROIDLiquidityROIDToRemove = \sqrt{\frac{K \times PriceASTR}{TargetPriceROID}} - LiquidityROID

Posting Fee

The posting fee will be charged per topic entry, so if you are posting to 3 communities, you will need 3 times the posting fee.
PostingFee=LiquidityROIDToRemoveLastSeasonValidCommunityArticlesPostingFee = \frac{LiquidityROIDToRemove}{LastSeasonValidCommunityArticles}
There's also a minimum posting fee and maximum posting fee set by the protocol. So the actual posting fee will be as below.
ActualPostingFee=max(minFee,min(maxFee,PostingFee))ActualPostingFee = max(minFee, min( maxFee, PostingFee))

Community Staking Rewards

The ROID token can be staked on the listed communities and you will get yields proportional to the amount and the period of your staking. This will reduce selling pressure and keep the ROID ecosystem sustainable. The total staking reward for each season is 25% of CirculationCapacity- CurrentCirculation.
TotalStakingYield=CirculatonCapacityCurrentCirculationTotalStakingYield = CirculatonCapacity - CurrentCirculation

Super ROID (sROID) Token​

In the first phase, the Asteroid Treasury consists of 100% $ASTR collateral, which imposes a risk of the ROID price floor crash due to the volatility of $ASTR token.
When the number of tokens in circulation is larger than the limit determined by the bezier curve, ROID can be converted to sROID until the number of tokens in circulation decreases to the limit. Such an event happens when the price of $ASTR token goes down resulting in a loss of the treasury value.
sROID is superior to ROID as it has a 2x boost on the community staking. sROID can also be redeemed for ROID when $ASTR price goes up and the ROID in circulation won’t exceed the treasury value.
In later phases, Asteroid will have multiple collateral tokens in the treasury, especially stable tokens to stabilize the volatility.
The reason we take the risk of having 100% $ASTR collateral is that the Astar blockchain has a natively built-in staking reward mechanism called Dapps Staking, and there are no better lending solutions at the moment with stablecoins.
Note that the amount of the treasury tokens never decreases, only the total value of treasury varies due to price changes of the collateral tokens.