The original document file is published here.
Table of contents
- Intro
- Terminology and Concepts
- Interest
- Inflation
- Hyper Inflation: Early Universe, Not Zimbabwe
- Exponential Growth (explainer)
- Circulating Coins
- Inflation and You
- HEX Rules in a Nutshell
- Longer Pays Better Bonus
- Bigger Pays Better Bonus
- Shares
- Share Rate
- Early Unstake Penalty
- Late Unstake Penalty
- HEX Rules Implications
- Earlier Pays Better
- HEX Inflates, Shares Deflate
- Enhanced Share Deflation: Penalties
- Stake Sacrificing: Improving Your Share (of Shares)
- Simulation Explanation
- Personae
- Gainz
Intro
HEX is a project to recreate a common banking product called a “time deposit”. It is an ERC-20 token and fully automated in the form of a smart contract on the Ethereum blockchain. Information and a FAQ is available at https://HEX.win. A walkthrough of the contract functionality in layman’s terms can be found here .
For 10% more HEX from your BTC claim and Transform Lobbies, use my HEX referral link .
If you would like to send a tip, my ETH address is 0xD30BC4859A79852157211E6db19dE159673a67E2
If you want to maximize your AA participation, use my Cost Averaging Contract described here:
This document is meant to provide a deep dive on the “rules” of the HEX system and share findings from a simulation program that I’ve written to inform users on what they can expect from the HEX contract. I will break down what the simulation does and how it operates at the end, but if you don’t care about that, then skip it.
Terminology and Concepts
Interest
HEX’s primary claim is that stakers are paid interest. Without trying to get technical, it’s actually paying Inflation. The contract is not holding any HEX in reserve from which to “pay” stakers. When a stake ends, the contract computes a value of the stake based on all payment parameters and penalties and then mints that many HEX to the user. It uses a flat 3.69% inflation rate, compounding as often as daily. So if a user stakes 100 HEX (which are burned) and at a later date, the contract mints 100 + some payout HEX, HEX has inflated by “some payout”. That’s the mechanism of paying interest.
Inflation
Inflation is typically measured as the percentage growth of the existing supply. I mentioned that the contract burns HEX that is staked. It tracks those HEX as virtual supply so inflation is calculated from the HEX in existence plus all HEX burned for staking. Between those two values, inflation is calculated from all HEX ever minted. It meets the definition of inflation. The only missing component is the pending payouts for active stakes. This is working as designed.
Hyperinflation: Early Universe, Not Zimbabwe
The first year, the claim year, actually goes through a period of hyperinflation (more like the early universe, not like Zimbabwe) as WeAreAllSatoshi is distributed to stakers and amplified by the various bonuses. This is where the 500 billion HEX figure comes from that people bandy about. The bonuses are only active during the Launch Phase and act as a hyperinflating mechanism, far above and beyond the 3.69% steady state inflation.
Exponential Growth (explainer)
This is usually connoted as very bad and means a massive increase in supply, thus diluting your holdings. People commonly imagine a J curve where supply appears flat in the near term but explodes at some point. Exponential growth is merely growing by a percentage of what already exists, periodically. Even 1% annual growth is exponential growth. Plot 1.01^x on a graphing calculator or graphing app and zoom out to ~600 years. It looks bad, but you’ll be dead by then, so don’t worry about it.
HEX has a 3.69% inflation rate which means that total supply will double roughly every 20 years. The supply after 1 year was showing up in my simulations as ~450 billion HEX, meaning it would surpass 1 trillion HEX roughly 25 years later. That’s exponential growth. You won’t be dead yet hopefully, but it’s a ways off. Additionally, you have the means to maintain or even improve your relative wealth…
Circulating Coins
HEX inflates by crediting coins to the staker payout pool. Unlike inflation in the real world, the new coins are locked-by-default. Inflation only hits circulation when a stake matures and the staker collects their coins. The contract doesn’t even mint coins until that moment and burns coins upon staking. The totalSupply function is synonymous with the circulating supply. Maturing stakes are unlikely to be highly correlated because people will use a mix of time horizons. People will claim/stake at different start weeks, and ending a stake is not automatic which means there will be different end stake days even for otherwise identical stakes. Therefore, inflation is very likely to trickle into circulation rather than dump into circulation.
Under simulation, addresses maintained a certain percentage of their holdings as “free” coins for trading. Regardless, because of mixed stake lengths, mixed claim weeks, and back-loading the minting of new coins, the circulating supply of coins was very low as a percentage of the total. (By Year)
- 3.7% Total Supply in Circulation
- 5.2% Total Supply in Circulation
- 6.3% Total Supply in Circulation
- 7.3% Total Supply in Circulation
- 7.7% Total Supply in Circulation
- 8.7% Total Supply in Circulation
- 9.1% Total Supply in Circulation
- 8.9% Total Supply in Circulation
- 9.1% Total Supply in Circulation
- 9.1% Total Supply in Circulation
This is one of the primary “pump” drivers for the coin, ostensibly. You grow your share of wealth by acquiring coins and staking them for long periods of time. Access to coins is severely limited compared to the coins that are locked, and consequently the price should go up.
Inflation and You
The problem with inflation as you experience it in your regular life is that money is created and given/lent to other people other than you. You must constantly hustle to keep up. If you have ever heard the phrase “inflation adjusted wages are flat” or “real wages haven’t grown in 30 years”, that means you got screwed by inflation. More money has been created but your relative share of it remained constant (grew at the same rate).
For example, if there are 1000 dollars in existence and you have 100 dollars, you have 10% of all the wealth. If 30 dollars are created, there are now 1030 dollars in existence and you suddenly only have 9.7% of all the wealth. Inflation got you! However, if you received 3 of those those 30 new dollars, your share of wealth would be maintained (100/1000 = 103/1030 = 10%).
In HEX, your wealth is preserved as long as you are staking for average or longer periods. In fact, if you are staking for longer than average, you have a greater share of the inflation coins and therefore your wealth as a percentage of the whole is growing. From the example above, assume there are 1000 dollars in existence and you hold 100 of them. This time, however, all 30 dollars created are given to you. Once again there are now 1030 dollars in existence (3% inflation) but you went from 10% of all the money to 12.6% of all the money. That 3% inflation didn’t hit you, it hit your fellow dollar holders. That’s HEX. Inflation is minted to stakers only. The incentive is to stake longer and get more shares of that inflation – to be the guy who gets more of that new $30 than anybody else.
HEX Rules in a Nutshell
Longer Pays Better Bonus
Staking HEX for 2 to 3641 days receives a linearly increasing bonus up to 2x the input HEX. The math is easy, bonus = input HEX * (days – 1) / 1820.
Bigger Pays Better Bonus
Staking HEX for amounts up to 150,000,000 receives a quadratically increasing bonus up to 10% of the input HEX. This is somewhat complicated and understanding is not required.
For the curious…
The math for Bigger Pays Better is bonus = (input * (min(input, 150e6)/1500e6). This means that the larger your input HEX, the larger percentage of that input HEX you receive as a bonus, which is also an absolutely larger value, e.g.
1,000,000 HEX is bonused 667 HEX
2,000,000 HEX is bonused 2667 HEX
4,000,000 HEX is bonused 10667 HEX
Double the input, 4x the bonus.
Shares
A user’s HEX and stake days are ultimately converted to Shares. When calculating a user’s portion of day’s inflation + penalty payments, they receive an amount equal to their stake’s Shares / Total shares in existence on that day. Meaning, if my stake has 10 shares and there are other active stakes with 90 shares, I will receive 10 / 100 of all payment for that day. If tomorrow there are 110 total shares (a new stake becomes active), I will receive 10 / 110 of all payment for that day. And so on.
Payments are all tracked in persistent storage and are only applied when stakes end. This means that “payments” is a bit of a misnomer – it’s more like “credited” or “recorded”. Upon ending a stake, the contract calculates the total payment from recorded data across all active stake days. See the Layman’s Guide for a more detailed description of the process.
Share Rate
When beginning a stake, a user’s input HEX and stake length run through the bonus functions and the resulting total HEX are converted to Shares. There is a global Share Rate that starts at 1 (meaning 1 Heart = 1 share) and only ever increases. This means that stakes started later, even with the same inputs, are likely to receive worse payouts than earlier stakes because their input HEX converts to shares at a less favorable rate.
The calculation for Share Rate is easy to understand. On every endStake the total payout to the user (principal + payouts), their stake length, and the number of shares they are destroying are run through an inverse share conversion function. Meaning, a Share Rate is computed such that this user, staking all of the HEX just minted for the same period of time would end up with the same number of shares they just destroyed.
Initially: shares = (input HEX + bonuses(input HEX, stake days)) / Share Rate
Recalculating: New Share Rate = ((input HEX + payouts) + bonuses((input HEX + payouts), stake days)) / shares
Result: If New Share Rate > Share Rate, use New Share Rate from now on
If the New Share Rate is higher than the current global Share Rate, the global Share Rate is updated. If not, it remains the same. It can happen that the global Share Rate increases during the course of a user’s stake so it’s possible that it won’t update for every single endStake. For example, a short stake may not make enough gains to overcome a recently-ended long stake’s Share Price increase. Not to put too fine a point on it, but users can lose Share buying power over time. This is where the advice about staking for longer than average duration comes from. Staking below average lengths is very likely to result in Share buying power loss over time.
Early Unstake Penalty
If a stake is ended prior to maturing, the system reaps the first half of the committed days’ payout and adds it to the next day’s payout credit. It will never pay better to end a stake early, even 1 day early. That said, there may be reasons to do it which will be explained later in this document.
Late Unstake Penalty
If a stake is ended more than two weeks after maturing, the system reaps 1% of the total return (principal + payouts) and adds it next day’s payout credit. It will never pay better to end a stake late both because of the penalty and because the Share Rate could have increased during the grace period. That said, there may be reasons to do it which will be explained later in this document.
HEX Rules Implications
Earlier Pays Better
Due to the Share Rate increasing over time, stakes started earlier are likely to pay better. Likely, but not guaranteed. It will be public knowledge which stakes are set to mature via StartStake events emitted from the contract. This will give the stake length and therefore the maturity date. If no stakes will reach maturity today, the Share Rate will not increase today. Early on, it may be possible for a small number of premature endStakes to have a positive ROI and thus bump the Share Rate if nobody else has done so already.
HEX Inflates, Shares Deflate
Share Rate is calculated such that the returns from a stake restaked for the same number of days will, at best, yield the same number of shares. Because of this property, a user can end up with vastly more HEX than they started with (inflation) yet never improve their number of shares (stagnant) without increasing their stake length. The stake length has a maximum so a user can only improve their number of shares by committing to a longer stake, capped by the maximum. Once that maximum length stake ends, the user is hard-stuck at restaking and receiving the same number of shares or fewer. Thus, over time the number of shares must, at most, remain constant wherein everyone stakes for the maximum length.
In reality though, the Share Rate will reduce the share buying power of stakers over time. All models I’ve run have a peak number of shares reached shortly after the WAAS lump payout, after which the total number of shares in the system decrease over time as short stakers are unable to maintain their share buying power.
Why peak after WAAS lump payout? That is the last event that creates HEX outside of the staking process. The only way to obtain HEX after the launch phase is through Staking which will always either increase the Share Rate to match the newly minted HEX, or the Share Rate is already higher such that these new HEX have reduced share buying power. During Launch Phase, however, Transform Lobbies, BTC claims, and WAAS lump all create HEX outside of the flow that changes Share Rate.
This is another example of longer stakes being better because the total shares in the system are likely to go down over the length of their stake, meaning they have a larger slice of inflation which will be greater over the length of their stake. A larger slice of a larger pie.
Enhanced Share Deflation: Penalties
The penalties system has a double effect of directly paying stakers and further reducing total shares in the system. Shares can only remain neutral if a staker can restake their returns at the same Share Rate. Having a penalized return guarantees that said staker cannot do that, meaning their share buying power is diminished, thus reducing the total possible shares in the system.
Moreover, the chunk of their payment redistributed to other stakers improves those other stakers’ ROI, meaning Share Rate will increase more than it would have otherwise. Penalties reduce the total shares in the system at both ends by disintegrating their own shares/share buying power and inflating the Share Rate for future stakers.
So why would someone do this…?
Stake Sacrificing: Improving Your Share (of Shares)
There is a case to be made for having sacrificial stakes that you intend to endStake early, even before the halfway point in order to completely liquidate them. This stake could then be sacrificed at a period of low stake participation. The effect here is that it will redistribute its principal and payouts to current stakers (including more stakes of yours) and its shares will be destroyed, thus increasing all current stakers’ portion of total possible shares.
The secondary effect is that the ROI for active stakes will be even better than pure inflation because of the penalty payouts such that when they end (at maturity), the Share Rate will increase more than normal, decreasing the share buying power of future stakers. This helps to lock in your portion of total possible shares.
I don’t recommend doing this without doing a lot of modeling to know under which scenarios this is net-positive.
Simulation Explanation
So why use something more complicated than a calculator? HEX staking is a “shares” based system, meaning your returns actually depend on the behavior of other players. The purpose of running a simulation is to model many simultaneous players to see how they perform in something closer to reality.
The simulation begins by creating a new bitcoin universe. I used the bitcoin distribution data found here https://bitinfocharts.com/top-100-richest-bitcoin-addresses.html as the model and generate a random universe that closely resembles the one we’re in. For example, it may generate slightly more 10-100 BTC holders and slightly fewer 100-1000 BTC holders, but the distribution is still within a tiny margin of error. Additionally, the balance may be slightly more on the low end or high end of the scale for each holding range, but again the total is within a small margin. The total bitcoin ranges I have seen are 16.9 – 18.1 million total bitcoins. The figure in the real world is 17.6 million at time of authoring. One thing to note is that it is *not* random with regard to 100k – 1M bitcoin holding addresses. It uses precisely the 5 that were on the chain at the time of writing.
After establishing the baseline of existing addresses, it moves through every address and randomly assigns a staking behavior and day it will claim as a viral uptake function. The only modifying factor is that the simulation accounts for the 17% or so addresses that are known to have lost their private keys. This has been reported as ~2.5 – 3.5 million bitcoins “lost” due to private key loss. Combined, a typical run sees roughly 16% of eligible claims being made. Then it just walks through 11 years, 1 day at a time. When an address would claim, it may randomly use a referral (self or other random user) and then it implements its staking behavior.
A similar process is used to gauge Transform Lobby participation albeit from a known, similar system (EOS crowd sale).
The code accumulates gains information for every year after the claim week, hence 11 years run to get 10 years of data, and finally spits out the breakdown by behavior, start day, and year.
Personae
A persona is a combination of stake allocation as a percentage of total coins held and stake length in weeks. The allocations capture a bias for liquidity and the length as a proxy for risk tolerance/commitment to the project. I modeled the system using a mix of characters such as Trader (0% staked), Waffler (50%), Pareto (80%), and Hard Gainer (97%) staking for contiguous periods ranging from 1 week to 10 years.
Some examples would be a College Savings persona (97% x 10 years), a Flexible WAAS Capture persona (80% x 1 year), or a Longish-Hedger persona (50% x 5 years). It’s possible and even likely that you will have a mixture of stakes so the value of analyzing different personae performance is to allocate to your stakes based on the spectrum of your risk tolerance.
Gainz
Over 10 years, the big winners are 10 year stakers. This is in line with the stated goals of the project. A 10 year staker on average would get 80x their principal. Shorter stakers had more opportunities to market sell and they took a hit on earnings to have those opportunities. Here is some high level guidance to help you decide what you want to do.
- Better late than never
- Claiming/staking at the ~8 month mark can still easily double in the first year of staking
- Earlier claims show better annualized returns
- This should make sense because you’re in the staker pool with fewer people and received better Share Rates
- Returns converge on expected rate only after several years
- Seriously. Claim early.
- Stake Length Matters, but not in the way you might think
- The key is to be staking longer than average
- Below average length stakers saw < inflation returns
- This is working as intended – nervous stakers/non-stakers pay long stakers
- Average is a moving target because it depends on user behavior – tooling would be needed to track stake lengths and calculate the average
- Do Not Miss WAAS Day
- As described in the main document, the unclaimed coins are paid out 352 days after contract launch. Don’t miss it. Be Staked during that day.
- Do
- Not
- Miss
- It