From 2b77cd91f4731eb2b260eeaaa4f6930705db5dc4 Mon Sep 17 00:00:00 2001 From: Adrian <44499545+waveform06@users.noreply.github.com> Date: Wed, 9 Apr 2025 14:09:55 +0100 Subject: [PATCH 1/5] Update hnt-token with more emissions dates and net emissions pool --- docs/tokens/hnt-token.mdx | 92 ++++++++++++++++++++++++++++++--------- 1 file changed, 72 insertions(+), 20 deletions(-) diff --git a/docs/tokens/hnt-token.mdx b/docs/tokens/hnt-token.mdx index 074d075f0..5234885e6 100644 --- a/docs/tokens/hnt-token.mdx +++ b/docs/tokens/hnt-token.mdx @@ -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. @@ -54,11 +50,12 @@ needs and relatively scarce, with a known maximum. 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. +of 240,000,000 HNT, **but slow blockchain times in year 1 resulted in emissions of ~43,000,000 +resulting in a max supply of ~223,000,000 HNT. | Year | Year Start | HNT at Year Start | Target HNT Emission | | :--: | ---------------: | ----------------: | ------------------: | -| 1 | August 1st, 2019 | 0 | 60,000,000 | +| 1 | August 1st, 2019 | 0 | **60,000,000 | | 2 | August 1st, 2020 | 60,000,000 | 60,000,000 | | 3 | August 1st, 2021 | 120,000,000 | 30,000,000 | | 4 | August 1st, 2022 | 150,000,000 | 30,000,000 | @@ -66,6 +63,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]. @@ -94,25 +93,78 @@ produced via Net Emissions do not add to the total outstanding, they do not viol 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. +Specifically, Net Emissions counts only HNT burned for Data Credits and does not count HNT +programmatically burned for any other reason. 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 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 calcuation to that for the +Utility Score described in [HIP-141][hip-141]. + +The smoothing calculation multiplies yesterdays uncapped and smoothed HNT burned for DC amount +number and multiplies it by 6/7 and then adds it to todays actual HNT burned for DC 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. This has an effect that large burns on one day can increase Net +Emissions over several days rather than just one day. + +``` +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 for DC number was 400 HNT `net_emissions_target(yesterday)` and +today's HNT burned for DC 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 for DC number was 1,650 HNT and today's HNT burned for DC 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 for DC from previous days to today has resulted in more HNT Net Emissions +today than were HNT burned for DC today. + +Tomorrow, the uncapped number (1,442.857143) will become yesterday's smoothed HNT burn for DC number. + + +#### Example 3 + +If yesterday's smoothed HNT burn for DC number was 1,440 HNT and today's HNT burned for DC 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 for DC 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]: From cbd6aaa8ae1dacc2bb4ed74194b2bcb43b804fe1 Mon Sep 17 00:00:00 2001 From: Adrian <44499545+waveform06@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:05:24 +0100 Subject: [PATCH 2/5] Update hnt-token.mdx --- docs/tokens/hnt-token.mdx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/tokens/hnt-token.mdx b/docs/tokens/hnt-token.mdx index 5234885e6..a1bac2d01 100644 --- a/docs/tokens/hnt-token.mdx +++ b/docs/tokens/hnt-token.mdx @@ -49,9 +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 240,000,000 HNT, **but slow blockchain times in year 1 resulted in emissions of ~43,000,000 -resulting in a max 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 | | :--: | ---------------: | ----------------: | ------------------: | @@ -98,7 +99,8 @@ programmatically burned for any other reason. 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 From b37e70ddcd3b3fc2f184affc1d49d79dd7b7bd09 Mon Sep 17 00:00:00 2001 From: Adrian <44499545+waveform06@users.noreply.github.com> Date: Wed, 9 Apr 2025 17:12:03 +0100 Subject: [PATCH 3/5] Update hnt-token.mdx to confirm includes all HNT burn --- docs/tokens/hnt-token.mdx | 58 +++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/docs/tokens/hnt-token.mdx b/docs/tokens/hnt-token.mdx index a1bac2d01..204a15a3a 100644 --- a/docs/tokens/hnt-token.mdx +++ b/docs/tokens/hnt-token.mdx @@ -89,13 +89,13 @@ 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. +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. -Specifically, Net Emissions counts only HNT burned for Data Credits and does not count HNT -programmatically burned for any other reason. +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. @@ -106,17 +106,17 @@ 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 calcuation to that for the -Utility Score described in [HIP-141][hip-141]. +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]. -The smoothing calculation multiplies yesterdays uncapped and smoothed HNT burned for DC amount -number and multiplies it by 6/7 and then adds it to todays actual HNT burned for DC 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. This has an effect that large burns on one day can increase Net -Emissions over several days rather than just one day. +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. This has an effect that large burns on one day can increase Net Emissions over +several days rather than just one day. ``` net_emissions_target(today) = net_emissions_target(yesterday) * 6/7 + hnt_burn(today) * 1/7 @@ -126,10 +126,10 @@ hnt_net_emissions(today) = min(net_emissions_target(today), 1,643.83561643) #### Example 1 -If yesterday's smoothed HNT burn for DC number was 400 HNT `net_emissions_target(yesterday)` and -today's HNT burned for DC 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)`. +If yesterday's smoothed HNT burn fnumber 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. @@ -139,28 +139,26 @@ smoothed HNT burn for DC number `net_emissions_target(yesterday)`. #### Example 2 -If yesterday's smoothed HNT burn for DC number was 1,650 HNT and today's HNT burned for DC is 200 -HNT, then the result is: (1,650 x 6/7) + (200 x 1/7) = 1,442.857143 and is under the cap. +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 for DC from previous days to today has resulted in more HNT Net Emissions -today than were HNT burned for DC today. - -Tomorrow, the uncapped number (1,442.857143) will become yesterday's smoothed HNT burn for DC number. +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 for DC number was 1,440 HNT and today's HNT burned for DC 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 +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 for DC number. +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 From 3f3b0957136050ff8ac66f3f0e5c906b270f777c Mon Sep 17 00:00:00 2001 From: Adrian <44499545+waveform06@users.noreply.github.com> Date: Fri, 11 Apr 2025 10:58:43 +0100 Subject: [PATCH 4/5] Update hnt-token.mdx clarified meaning of Target clarified meaning of Target --- docs/tokens/hnt-token.mdx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/tokens/hnt-token.mdx b/docs/tokens/hnt-token.mdx index 204a15a3a..49be823c6 100644 --- a/docs/tokens/hnt-token.mdx +++ b/docs/tokens/hnt-token.mdx @@ -110,13 +110,17 @@ HIP-20 proposed a Net Emissions Pool, which would smooth out the effects of larg 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]. +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 +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. This has an effect that large burns on one day can increase Net Emissions over -several days rather than just one day. +number for today. ``` net_emissions_target(today) = net_emissions_target(yesterday) * 6/7 + hnt_burn(today) * 1/7 @@ -126,7 +130,7 @@ hnt_net_emissions(today) = min(net_emissions_target(today), 1,643.83561643) #### Example 1 -If yesterday's smoothed HNT burn fnumber was 400 HNT `net_emissions_target(yesterday)` and today's +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)`. From c000d8a1de04cfdddb90c9d784ffbf92d9789515 Mon Sep 17 00:00:00 2001 From: Adrian <44499545+waveform06@users.noreply.github.com> Date: Fri, 11 Apr 2025 17:21:34 +0100 Subject: [PATCH 5/5] Update hnt-token.mdx, - text formatting --- docs/tokens/hnt-token.mdx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/tokens/hnt-token.mdx b/docs/tokens/hnt-token.mdx index 49be823c6..16bebd1e5 100644 --- a/docs/tokens/hnt-token.mdx +++ b/docs/tokens/hnt-token.mdx @@ -50,13 +50,13 @@ needs and relatively scarce, with a known maximum. 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 an initial maximum HNT -supply of 240,000,000 HNT, **but slow blockchain times in year 1 "resulted in an issuance that was +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 | | :--: | ---------------: | ----------------: | ------------------: | -| 1 | August 1st, 2019 | 0 | **60,000,000 | +| 1 | August 1st, 2019 | 0 | 60,000,000 | | 2 | August 1st, 2020 | 60,000,000 | 60,000,000 | | 3 | August 1st, 2021 | 120,000,000 | 30,000,000 | | 4 | August 1st, 2022 | 150,000,000 | 30,000,000 | @@ -110,12 +110,12 @@ HIP-20 proposed a Net Emissions Pool, which would smooth out the effects of larg 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 +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 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 @@ -150,7 +150,7 @@ Therefore, 1,442.857143 is today's actual HNT Net Emissions, and as 200 is less 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. +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. @@ -159,7 +159,7 @@ Tomorrow, the uncapped number (1,442.857143) will become yesterday's smoothed HN 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 +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.