Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update hnt-token with more emissions dates and net emissions pool #1968

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 82 additions & 26 deletions docs/tokens/hnt-token.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,13 @@ Blockchain on April 18, 2023.
The mint address for HNT is [`hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux`][hnt-mint-addr] on the
Solana blockchain.

Navigate to [https://explorer.helium.com/stats][explorer-stats] for up-to-date information on
Network tokens.

## HNT Usage

HNT serves the needs of the two primary parties in the Helium Ecosystem:

1. **Hotspot Hosts and Operators**. Hosts are rewarded in network tokens like [IOT][iot] or
[MOBILE][mobile] while deploying and maintaining network coverage. These network tokens are
redeemable for HNT.
2. **Enterprises and Developers use the Helium Network** to connect devices and build IoT
1. **Hotspot Hosts and Operators**. Hosts are rewarded in HNT network tokens while deploying and
maintaining network coverage. Operators, and some network mappers are also rewarded in HNT.
2. **Enterprises and Developers use the Helium Network** to connect devices and build Network
applications. [Data Credits][datacredit], which are a \$USD-pegged utility token derived from
HNT, are used to pay transaction fees for wireless data transmissions on the Network.

Expand All @@ -53,8 +49,10 @@ needs and relatively scarce, with a known maximum.
### Max Supply

The Network targeted the distribution of 5,000,000 HNT per month at launch. Following the community
approval of HIP-20, the Network uses a two-year halving schedule, resulting in a maximum HNT supply
of 223,000,000 HNT.
approval of HIP-20, the Network uses a two-year halving schedule, resulting in an initial maximum HNT
supply of 240,000,000 HNT, but slow blockchain times in year 1 "resulted in an issuance that was
~17,000,000 HNT less than the schedule targeted. Thus, at the time HIP 20 was approved, max supply had
decreased to ~223,000,000 HNT.

| Year | Year Start | HNT at Year Start | Target HNT Emission |
| :--: | ---------------: | ----------------: | ------------------: |
Expand All @@ -66,6 +64,8 @@ of 223,000,000 HNT.
| 6 | August 1st, 2024 | 195,000,000 | 15,000,000 |
| 7 | August 1st, 2025 | 210,000,000 | 7,500,000 |
| 8 | August 1st, 2026 | 217,500,000 | 7,500,000 |
| 7 | August 1st, 2027 | 225,000,000 | 3,750,000 |
| 8 | August 1st, 2028 | 228,750,000 | 3,750,000 |

> The full token emission schedule can be viewed in the HNT section of this document: [Token
> Emissions as of Solana Migration][sol-emissions].
Expand All @@ -89,30 +89,86 @@ continue transmitting data and ensure a healthy, robust network, the Net Emissio
instituted in August 2021.

Net Emissions give the protocol enough HNT for rewards in perpetuity by monitoring the number of HNT
burned for DC in a given epoch and adding that to the number of HNT to mint that epoch. Because HNT
produced via Net Emissions do not add to the total outstanding, they do not violate max supply.
However, to ensure that the deflationary pressure is still present, the Net Emission is capped at 1%
of the epoch emissions at the time when HIP 20 was approved.

For instance, in October 2024, the Net Emissions cap is 1,643.83561643 HNT per epoch, and the
up-to-date value can be verified
[on chain at](https://solscan.io/account/BQ3MCuTT5zVBhNfQ4SjMh3NPVhFy73MPV8rjfq5d1zie#data). Move
decimal point 8 positions left to measure in HNT.

If less than 1,643.83561643 HNT is burned for DC within an epoch, the full amount burned will be
re-minted and added to the day's usual scheduled emissions for that day's epoch. However, if more
than 1,643.83561643 HNT is burned for DC within a single epoch, any HNT burn for DC over
1,643.83561643 will be permanently burned and removed from the max supply, while 1,643.83561643 will
be re-minted and distributed in scheduled emissions.
burned in a given epoch and adding that to the number of HNT to mint that epoch. Because HNT produced
via Net Emissions do not add to the total outstanding, they do not violate max supply. However, to
ensure that the deflationary pressure is still present, the Net Emission is capped at 1% of the epoch
emissions at the time when HIP 20 was approved.

Initially, Net Emissions counted only HNT burned for Data Credits but now accounts for all HNT burned,
but does not include HNT not emitted.

Review the [complete Net Emissions discussion in the HIP][hip-20] for more information. Note that in
HIP-20, the cap was 34.24 HNT because the epoch was every 30 minutes at the time HIP-20 was written.
The current epoch is only 24 hour basis, yielding a cap of 1,643.83561643 HNT.
The current epoch is only 24 hour basis, yielding a cap of 1,643.83561643 HNT. The cap is not affected
by the 2 year emissions halvings.

The up-to-date value can be verified
[on chain at.](https://explorer.solana.com/address/BQ3MCuTT5zVBhNfQ4SjMh3NPVhFy73MPV8rjfq5d1zie/anchor-account) Move
the decimal point 8 positions left to measure `Net Emissions Cap` in HNT.

HIP-20 proposed a Net Emissions Pool, which would smooth out the effects of large individual burn events
occurring infrequently over several days. Without smoothing, large HNT burns for DC would be extremely
capped as the burn and cap would happen only on one day. This pool was implemented as part of
[HRP 2025-03][hrp-2025-03] using a similar smoothing calculation to that for the Utility Score described
in [HIP-141][hip-141]. With smoothing, this has an effect that large burns on one day can increase Net
Emissions over several days, rather than just one day.

Every day, a Net Emissions Target is calculated, which takes into account the daily burn of HNT, and
the Net Emissions Target of the previous day and smoothes it. The target amount of HNT is then re-emitted
as Net Emissions, up to the cap of 1,643.83561643 HNT.

The smoothing calculation multiplies yesterday's uncapped and smoothed HNT burned amount number and
multiplies it by 6/7 and then adds it to today's actual HNT burned amount, multiplied by 1/7 and the
resulting number then has the Net Emissions Cap applied to provide the calculated Net Emission HNT
number for today.

```
net_emissions_target(today) = net_emissions_target(yesterday) * 6/7 + hnt_burn(today) * 1/7

hnt_net_emissions(today) = min(net_emissions_target(today), 1,643.83561643)
```

#### Example 1

If yesterday's smoothed HNT burn number was 400 HNT `net_emissions_target(yesterday)` and today's
HNT burned is 10,0000 HNT `hnt_burn(today)`, then the result is:
(400 x 6/7) + (10,000 x 1/7) = 1,771.429 `net_emissions_target(today)`,
but will be Max capped at 1,643.83561643 HNT and become `hnt_net_emissions(today)`.

Therefore, 1,643.83561643 is today's actual HNT Net Emissions and as 10,000 - 1,643.83561643
= 8,356.164384 then the net result is 8,356.164384 HNT will be burned today.

Tomorrow, the uncapped number `net_emissions_target(today)`(1,771.429) will become yesterday's
smoothed HNT burn for DC number `net_emissions_target(yesterday)`.

#### Example 2

If yesterday's smoothed HNT burn number was 1,650 HNT and today's HNT burned is 200 HNT,
then the result is: (1,650 x 6/7) + (200 x 1/7) = 1,442.857143 and is under the cap.

Therefore, 1,442.857143 is today's actual HNT Net Emissions, and as 200 is less than today's
emissions, the net result is no HNT is burned.

Smoothing the HNT burn from previous days to today has resulted in more HNT Net Emissions today
than were HNT burned today. These came from yesterday's pooled number.

Tomorrow, the uncapped number (1,442.857143) will become yesterday's smoothed HNT burn number.

#### Example 3

If yesterday's smoothed HNT burn number was 1,440 HNT and today's HNT burned is 2,000 HNT,
then the result is: (1,440 x 6/7) + (2,000 x 1/7) = 1,520 HNT and is under the cap

Therefore, 1,520 is today's actual Net Emission's and 2,000 - 1,520 = 480 HNT will be burned
today.

Tomorrow, the uncapped number (1,520) will become yesterday's smoothed HNT burn number.

[bme]: https://multicoin.capital/2018/02/13/new-models-utility-tokens/
[datacredit]: /tokens/data-credit
[explorer-stats]: https://explorer.helium.com/stats
[hip-20]: https://github.com/helium/HIP/blob/master/0020-hnt-max-supply.md#net-emissions
[hip-141]: https://github.com/helium/HIP/blob/main/0141-single-token-governance-and-release-proposals.md#smoothing-function
[hrp-2025-03]: https://github.com/helium/helium-release-proposals/blob/main/releases/20250312-core-devs.md#1-hnt-token-net-emissions-smoothing
[iot]: /tokens/iot-token
[mobile]: /tokens/mobile-token
[sol-emissions]:
Expand Down