For everyone who is curious and not able to read the provided python code, here are the details of the new tokenomics/minting specification. Please let me know if anything is unclear of if you spot any mistakes.
Certification
Certified farmers receive certain perks that will factor into calculations below. Details on which hardware can be certified and what the process looks like are available in the wiki.
Capability Zone
This metric rewards farmers who bring nodes online in areas that are currently underserved by internet infrastructure. For Africa and South America, this value is 1, while for the rest of the world it is 10.
Bandwidth Check
Nodes need to be connected to adequate bandwidth to be able to utilize their storage and compute resources. This metric penalizes farmers who provide less bandwidth measured in download speed, as follows:
Certified
Bandwidth has been certified, so always 100%
Uncertified, Capability zone 1
100% for 2mb
50% for 1-2mb
0% for less than 1mb
Uncertified, Capability zone 10
100% for 20mb+
50% for 10-20mb
0% for less than 10mb
Utilization
Uncertified nodes are penalized if they do not maintain a certain level of utilization. There is a one year grace period where this check is not applied, which I assume began whenever the new tokenomics took effect in either May or June.
100% for greater than 50% utilization
50% for 25-50% utilization
0% for less than 25% utilization
Uptime
Certified nodes have agreed to 99.8% uptime (1.44 hours downtime max per month), while uncertified nodes are expected to maintain 99% uptime (7.2 hours downtime max per month). Nodes that do not meet the uptime requirement will not farm any tokens.
Difficulty Level
As the token supply grows, the tokens minted in a given month diminish. This both rewards early adopters and also ensures that the supply is limited to 4 billion tokens.
Difficult level = 1 - (number of existing tokens / 4 billion)
So for example, when 2 billion tokens have been minted, the difficulty level will be
1 - (2 billion / 4 billion) = .5
And when 3 billion tokens have been minted
1 - (3 billion / 4 billion) = .25
Once token supply reaches 4 billion (actually just a bit lower by the current logic) no new tokens are farmed. Assuming 800 million TFTs in circulation currently, the difficulty level is:
1 - (800 million / 4 billion) = .8
Cloud Production Rate in TFTs
Cloud production rate is subject to change, and in fact there are two (slightly) different formulas provided, one in the wiki and another in the code used to display the CPR in ThreeBot’s admin dashboard for farmers. The cloud unit calculations are a bit complicated, so I won’t repeat them here.
We assign a price to purchase the hardware corresponding to one CPR of capacity, which is quoted as $40 USD at the beginning of 2020. Then we assume that this hardware should pay for itself over six months. Finally, the value is converted from dollars to TFTs, based on an average TFT price from the last month. Right now, this looks something like:
CPR TFTs = CPR investment cost / 6 / TFT price = $40 / 6 / $.15 = 44.44 TFT/CPR
TFTs Farmed
Using all of the values derived above, we can make the final calculation for how many TFTs a given node will farm per month. Note that percentage values given for bandwidth, etc will need to be converted to decimal by dividing by 100 (50% = .5), and uptime is 1 or 0 depending on whether applicable uptime requirement was met.
TFTs farmed = Node CPR * CPR TFTs * Difficulty Level * Uptime * Utilization * Bandwidth
For certified nodes, this can be simplified to:
TFTs farmed = Node CPR * CPR TFTs * Difficulty Level * Uptime
Conclusion
There are a number of variables here that are under the Foundation’s control which will affect the ultimate number of TFTs farmed by a node, but this is the best information we presently have on what the new tokenomics look like in practice. Again, questions and corrections are welcome. Thanks!