The point of this page is to demonstrate HOW Cardano profits are calculated and to show how many UNKNOWN VARIABLES are used in the calculation. Result of this calculator SHOULD NOT be considered a promise or a guarantee of future profits, and should not be used as a financial advice.
Not a single company associated with the Cardano project (IOHK, Emurgo, Cardano Foundation, etc.) should be held accountable for the results of this calculator!
Calculator
Formula explanation
All information for calculations are taken from these documents:
- Cardano monetary policy
- Cardano staking explained
- AdaTracker charts (to approximate transaction number)
- "Antipalos" project stats calculated from official explorer
Parameters require for calculations:
INFL
- the level of inflation in yearly percentile reserve decreaseYEAR
- number of full years since the launch of the stakingSTAKE
- your stake in coinsTOTAL_STAKE
- total stake in the system in coinsTX_EPOCH
- average number of transactions each epoch (5 days)TX_SIZE
- average size of a transactionTAX
- the percentage of profits taxed towards the treasuryPOOL_FEE
- the percentage of profits that pool takes as a fee
Full formula:
MINT = 13,887,515,354 * (1 - INFL)YEAR * inflation
FEES = ((73 * TX_EPOCH) * 0.155381) + ((73 * TX_EPOCH) * TX_SIZE * 0.000043946)
RESULT = (((MINT + FEES) - TAX) * (STAKE / TOTAL_STAKE)) - POOL_FEE
Detailed explanation:
Minted coins
First we calculate how much coins will be issued this year as an inflation:
MINT = 13,887,515,354 * (1 - INFL)YEAR * INFL
The 13 billions number is taken from the monetary policy and represents the total reserve of coins not issued from the beginning. These coins will be gradually issued thru minting using formula above to calculate the amount. Formula is taken from the staking explanation post.
For example: if we take an arbitrary example of 5% reserve decrease, and calculated it for the second year (1 whole year after launch), then it would give us:
13,887,515,354 * (1 - 5%)1 * 5% = 659,656,979.315
Just under 660 millions of newly minted ADA in the second year of staking.
The MINT
value now gives us notion of how much new coins will
be issued to reward people. But there are also fees that users pay to send coins or execute any
transactions. Total fees for the whole year are calculated like this:
Fees
TX_YEAR = 73 * TX_EPOCH
FIXED_FEES = TX_YEAR * 0.155381
SIZE_FEES = TX_YEAR * TX_SIZE * 0.000043946
FEES = FIXED_FEES + SIZE_FEES
TX_YEAR
gives us the average number of transactions for the whole year.
One year consists of 73 epochs. For now it's fixed, but in theory also may change.
Best practice would be to make it a separate parameter EPOCH_YEAR
FIXED_FEES
is the number of all transactions per year multiplied by
the fixed transaction cost as described in the staking explanation post.
It also might change in the future so would be best to define parameter TX_FEE_FIXED
SIZE_FEES
is the sum of all bytes of all transactions per year multiplied by
the byte cost as described in the staking explanation post.
It also might change in the future so would be best to define parameter TX_FEE_PER_BYTE
For example: if we take current average number of transaction from the actual tracker it would be around 15,000. And if we take an average transaction size to be 458 byte, as can be seen in the statistics. Then we could calculate:
TX_YEAR = 73 * 15,000 = 1,095,000
FIXED_FEES = 1,095,000 * 0.155381 = 170,142.195
SIZE_FEES = 1,095,000 * 458 * 0.000043946 = 22,039.35846
FEES = 170,142.195 + 22,039.35846 = 192,181.55346
Tax
UNTAXED_REWARD = MINT + FEES
TAXED_REWARD = UNTAXED_REWARD - TAX
UNTAXED_REWARD
is the total pool of reward for all stakers in the system, but before
tax is subtracted. Once we subtract some percentage of the total pool into treasury -
we get the final TAXED_REWARD
- total reward distributed among all stakers.
For example: if we take TAX
to be 20% just as
an arbitrary rational example (IOHK proposed 20% tax for ETC, but it might end up
being be 25% for Cardano, or some other number), then calculations would go like:
UNTAXED_REWARD = 659,656,979.315 + 192,181.55346 = 659,849,160.868
TAXED_REWARD = 659,849,160.868 - 20% = 527,879,328.694
SHARE = STAKE / TOTAL_STAKE
REWARD_SHARE = TAXED_REWARD * SHARE
Any arbitrary staker (in the pool or not) may calculate his AVERAGE share of the rewards,
by calculating his SHARE
in the total stake of the system.
This parameter of the total stake is actually the most important one, because
it directly and in the most significant way affects how much coins a user will receive
by staking the same amount of coins. The lower total stake - the greater you share
can be with the same coins staked.
For example: if we take TOTAL_STAKE
to be 15 billion (just as
an arbitrary completely random example, no one knows how many actual coins will be staked) and
we take out stake to be 42 thousand coins, then calculations would go like:
SHARE = 42,000 / 15,000,000,000 = 0.0000028
REWARD_SHARE = 527,879,328.694 * 0.0000028 = 1,478.06212
This shows us that a person with a 42K coins stacked would receive ROUGHLY about 1,478.06212 in a year, but ONLY IF there would be 15 billions of total stake.
Pools fees
RESULT_REWARD = 1,478.06212 - 5% = 1,404.159014
Pools might take fees of different size and they will define those at the moment of the pool registration. For example: if we take a completely arbitrary number of 5%, then calculations would go like:
This gives us the final APPROXIMATE yearly profit of 1,404.159014 for a 42K stake, or 3.34%.
Frequently Asked Questions
How reliable is this whole thing, eh?
Presented results are not a promise of future profits! All they show is what APPROXIMATE amount of reward a person could receive ON AVERAGE in the selected period of time (specific year) ONLY IF actual behavior of the system would somewhat match WITH PARAMETERS SELECTED ABOVE!
This project is strictly educational. These results just demonstrate how the formula works, and the formula is somewhat similar to the one that will be used in the Cardano reward calculation protocol.
As soon as any new information about the incentives system becomes available - I will update the default parameters or the formula in this calculator. Subscribe to the informational channels, and look out for announcements.
What's up with all those parameters, eh?
See the Formula page to find detailed explanation of why all those parameters are needed.Basically, after seeing this calculator and explanation of its functionality, if someone shows you a calculator with fewer parameters - you may be sure they are hiding something. There are some yet undefined parameters they are not showing to you.
That's it. All those parameters are required to derive the final value. And there's no definite value for them exist yet (or ever) like with the fixed fee cost.
Why total stake is 15 billions, eh?
The amount of somewhat stable total stake in the system is not known at this point and will also change in time (but not as a predictable function) until it converges to some more or less stable value (in percentage) and will show only slight fluctuations from there on.
The total stake is one of 2 most important parameters - along with your own stake. These two parameters are basically decide how much you will profit, because they directly define your share in total stake - and this value directly shows how much of yearly inflation and yearly fees will go to you.
So for now - there's absolutely zero available data to decide what the total stake would be in the year one, or year two, or later on. For a real-world example we can take the "Waves" Proof-of-Stake platform that has total stake of ~60% of its supply. So the 15 billion number is taken completely arbitrarily just as middle ground around 50% of supply. The main point is to SHOW you how this value affects the rewards. So try to move it around and just plan ahead what you profits would be if the total stake would be at this value.
It might as well be lower in reality. But might as well be more.
Why Year
needed, eh?
The Year
parameter is required, since all the other monetary
behavior of the system changes in time - inflation decreases with total supply, fixed block
reward changes, etc. Any calculation that does not include time may only demonstrate you a "splice"
of time, for example, only the first year of staking.
Why Year
starts with 2019, eh?
The official date of staking release in Cardano is not defined yet, but it's somewhere in the fall of 2018. Since profits are calculated only yearly anyways (for now) and to make controls easier and more concise - it was decided to simply place 2019 as a first full year of staking. Basically, you can think of that date as: "the first year when I will receive my yearly profits".
Are you gonna make it better, eh?
Yes, see the roadmap.
Can you add new cool feature, eh?
See the roadmap in case it's already planned, or propose new features here.
About this project
As mentioned in the disclaimer:
- All calculations are actually rough estimates
- No result from this calculator should be considered as a promise of a future profits
- There are too much unknown variables present in the calculations and without knowing those - no result might be easily predicted
Why
Main points of this project are:
- Show how calculations are done
- Show how complex calculations are
- Show how many variables are used
- Show how many variables are yet unknown
- Show estimated order of magnitude for rewards
This project is educational! Remember this project if someone shows you a calculator with a couple of fields and a single question of how big your stake is. Or if someone tries to get an easy answer of "what the profit percentage will be" - show them this calculator.
Also it provides a nice place for the formula explanations with an immediate example.
Project development
This calculator is in the initial state. It was developed extremely fast with the main point ot get the formula and the example to people as soon as possible. There are many potential additional calculations possible, so project is planned for some support in the near future.
To ask development questions or propose features, you use:
- This dedicated discussion issue: https://github.com/antipalos/antipalos.github.io/issues/1
- Project issues in general: https://github.com/antipalos/antipalos.github.io/issues
Design
Initially this website had awful simplistic design (or it's absence).
And this sections contained an invitation for anyone who can do all this stuff to help the project and to contribute
into improving the design. Completely out of nowhere anonymous user DEFAULTERROR1
opened a pull-request
that majorly changed the whole layout of the website and turned it into the beauty it is today.
To this day I don't know who the DEFAULTERROR1 really are, but he always will be one of the greatest
and appreciated contributors to this website. He saw the opportunity to help - and he took it.
Be like DEFAULTERROR1 :)
UPD: New additional kudos to DEFAULTERROR1 for contributing the `NumPad` feature for mobile layout!
Help
If anyone wants to help with all of this, there are options:
- Create issue with a detailed tip on how I can make some JS or CSS stuff work better here: https://github.com/antipalos/antipalos.github.io/issues
- Create issue with a suggestions for new cool calculations - especially awesome if you can also suggest a formula: https://github.com/antipalos/antipalos.github.io/issues
- Just look for something to fix or add and open a PR: https://github.com/antipalos/antipalos.github.io/tree/master/cardano-calculator
- Spread the gospel about Cardano in general and this calculator in particular: https://forum.cardano.org/
- Donate to our community wiki at: https://cardanowiki.info/wiki/Funding
Contacts
Cardano
Forum: forum.cardano.org
Chat: t.me/CardanoGeneral
Reddit: r/Cardano
Wiki: cardanowiki.info
Calculator Dev
Twitter: @vsubhuman
GitHub: @vantuz-subhuman
Forum: /u/vantuz-subhuman
Reddit: /u/vantuz-subhuman
Cardano chat: t.me/CardanoDevelopersOfficial
Roadmap
Propose new features here or vote on existing features here.
0.1
- Release basic functionality
0.1.1
- Design improvements and mobile layout
- Localized number formatting
- Default tx-size changed to 350 bytes
- ADA favicon added
0.1.2 ✓ (Current version)
0.2
- Add "portion of max supply" calculation
- Extract text (templating engine?)
- Calculate yearly restaking
0.3
- Rework period calculation (prepare for per-epoch calculations)
- Calculator for pools
- Translation support
0.4
- Per-epoch calculations (with restaking)
- Basic multiperiods calculation (epochs to years)
0.5
- Links with parameters
- ...
0.6
- Prepare for stats collecting
- ...