From efc461f5ac7d7a3116f426c56cacd6159829d0b9 Mon Sep 17 00:00:00 2001 From: uchu Date: Fri, 1 Sep 2023 16:05:41 +0400 Subject: [PATCH 01/12] Added tokenomics draft --- src/sydney-testnet/tokenomics.md | 126 +++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/sydney-testnet/tokenomics.md diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md new file mode 100644 index 00000000..d9ce98ef --- /dev/null +++ b/src/sydney-testnet/tokenomics.md @@ -0,0 +1,126 @@ +# Tokenomics [DRAFT] + +## Initial Total Supply + +`1 Billion GGX` + +`1 GGX ~= 0.05 USD` + +`18 decimals` + +All amounts in this document are in GGX. + +## APY + +Schedule of APY will be next: + +| Date | Yearly APY** | +| -----|-----------------------| +| 2023 | 14.93% | +| 2024 | 13.93% | +| ... | ... | +| 2028 | 11.31% | +| ... | ... | +| 2043| 4% | +| ... | ... | +| 2053 | 2% | +| 2054 | 2% | + +** decreases by 6.7% per year + +After 30 years the APY stabilizes at 2% + +### Current state + +* Initial total supply is distributed to active nodes for now. +* 18 decimals is done. (configured by MILLIGGX) +* APY configured to 16%. (configured by runtime/mainnet/src/pos/currency.rs InflationPercent) +* APY decrease ladder scheduled for the runtime. + APY decrease happens every 365.25 days to address leap years. (configured by runtime/mainnet/src/pos/currency.rs InflationPercentDecay) + +## Staking + +Each new validators when enters `PoS` with `200 thousands` staked for `1 year`. + +Staking rewards are distributed each session. + +`Session period = 4 hours` +`Election period = quarter` + +### Slashing + +| Misbehavior | Amount | Parameters | +| ------------| -------| ------------------ +| Consensus Offline | 0.01% to 44% * Stake | starting from 10% validators offline linear increase | +| Consensus Equivocation for blocks(double sign) | 0.01% * Stake | TBD | +| MPC Signature (Wrong message) | 0.01% * Stake | TBD | +| MPC Key generation(Failure to participate) | 0.001% * Stake | TBD | +| Early unsake | 10% * Stake | +| ...TBD... | ...TBD... | + +Slashed amounts are sent to treasury. + +### Nominations + +| Account | Part | Type | +| ------- | ---- | ---- | +| Validator** | 5% | Fixed comission | +| Nominator + Validator** | 95% | Shared between nominators and validator || + +** 10% of validators rewards go to Treasury +| Account | Part | +| --------- | ---- | +| Validator | 90% | +| Treasury | 10% | + +### Current state + +* 1 year withdrawal lock is implemented +* Session period is 4 hours. Era period is quarter. + (configured by EpochDurationInBlocks, SessionsPerEra). +* Payout at the end of the session. Configured by runtime/mainnet/src/pos/session_payout/mod.rs +* Median commission to nominators from validator preferences calculated each session. + Static commission can be enabled by referenda. Configured by runtime/mainnet/src/pos/session_payout/mod.rs +* 10% Treasury comission is implemented. (configured by runtime/mainnet/src/pos/currency.rs TreasuryCommission) + +## Rewards + +### From transaction fees + +| Account | Part | +| -------- | ----- | +| Treasury | 100% | +| Validator(block producer) | 0% | +| Burn | 0% | + +Fees are distributed each block. + +### From transaction tips + +| Account | Part | +| -------- | ----- | +| Treasury | 25% | +| Validator(block producer) | 75% | +| Burn | 0% | + +### Current state + +* Done + +## Fees + +| Category | Type | Amount | +|------|--------|-----------| +|Transaction | 1 second of execution(or equivalent prove size)| 10000 | +|Transaction | MPC signatrue | 100 | +|Storage | ED for account | 0.1 | + +Proper fees to be defined. + +## Parameters configuration + +Parameters can be changed by OpenGov. + +### Current state + +* Implemented most of it. From 3658e334e071e5d5aca51d9c11e675d8957cbc25 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:40:26 +0400 Subject: [PATCH 02/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index d9ce98ef..9990678f 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -36,7 +36,7 @@ After 30 years the APY stabilizes at 2% * 18 decimals is done. (configured by MILLIGGX) * APY configured to 16%. (configured by runtime/mainnet/src/pos/currency.rs InflationPercent) * APY decrease ladder scheduled for the runtime. - APY decrease happens every 365.25 days to address leap years. (configured by runtime/mainnet/src/pos/currency.rs InflationPercentDecay) +* APY decrease happens every 365.25 days to address leap years. (configured by runtime/mainnet/src/pos/currency.rs InflationPercentDecay) ## Staking From be47f254ddfc42aa61509e4e06c78dc0ea07c70c Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:40:46 +0400 Subject: [PATCH 03/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 9990678f..7a41b62c 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -54,7 +54,7 @@ Staking rewards are distributed each session. | Consensus Offline | 0.01% to 44% * Stake | starting from 10% validators offline linear increase | | Consensus Equivocation for blocks(double sign) | 0.01% * Stake | TBD | | MPC Signature (Wrong message) | 0.01% * Stake | TBD | -| MPC Key generation(Failure to participate) | 0.001% * Stake | TBD | +| MPC Key Generation (Failure to Participate) | 0.001% * Stake | TBD | | Early unsake | 10% * Stake | | ...TBD... | ...TBD... | From 25748916646188169e304dca6da5cd7e10326619 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:41:02 +0400 Subject: [PATCH 04/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 7a41b62c..1bebdad8 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -52,7 +52,7 @@ Staking rewards are distributed each session. | Misbehavior | Amount | Parameters | | ------------| -------| ------------------ | Consensus Offline | 0.01% to 44% * Stake | starting from 10% validators offline linear increase | -| Consensus Equivocation for blocks(double sign) | 0.01% * Stake | TBD | +| Consensus Equivocation for Blocks (Double Sign) | 0.01% * Stake | TBD | | MPC Signature (Wrong message) | 0.01% * Stake | TBD | | MPC Key Generation (Failure to Participate) | 0.001% * Stake | TBD | | Early unsake | 10% * Stake | From 47aeaa88c0b268c81ec31f288973413bf71ea022 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:41:14 +0400 Subject: [PATCH 05/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 1bebdad8..e8d01669 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -81,7 +81,7 @@ Slashed amounts are sent to treasury. * Payout at the end of the session. Configured by runtime/mainnet/src/pos/session_payout/mod.rs * Median commission to nominators from validator preferences calculated each session. Static commission can be enabled by referenda. Configured by runtime/mainnet/src/pos/session_payout/mod.rs -* 10% Treasury comission is implemented. (configured by runtime/mainnet/src/pos/currency.rs TreasuryCommission) +* 10% Treasury comission is implemented. (configured by runtime/mainnet/src/pos/currency.rs `TreasuryCommission`) ## Rewards From bd82748760f631d42efdf876be1450e085959cea Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:41:24 +0400 Subject: [PATCH 06/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index e8d01669..60fb7292 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -77,7 +77,7 @@ Slashed amounts are sent to treasury. * 1 year withdrawal lock is implemented * Session period is 4 hours. Era period is quarter. - (configured by EpochDurationInBlocks, SessionsPerEra). + (configured by `EpochDurationInBlocks`, `SessionsPerEra`). * Payout at the end of the session. Configured by runtime/mainnet/src/pos/session_payout/mod.rs * Median commission to nominators from validator preferences calculated each session. Static commission can be enabled by referenda. Configured by runtime/mainnet/src/pos/session_payout/mod.rs From 9c7dac5e1cb4fe059791cbfcffb550aa57d74db5 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:42:23 +0400 Subject: [PATCH 07/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 60fb7292..0508bb91 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -55,7 +55,7 @@ Staking rewards are distributed each session. | Consensus Equivocation for Blocks (Double Sign) | 0.01% * Stake | TBD | | MPC Signature (Wrong message) | 0.01% * Stake | TBD | | MPC Key Generation (Failure to Participate) | 0.001% * Stake | TBD | -| Early unsake | 10% * Stake | +| Early Unstake | 10% * Stake | TBD | | ...TBD... | ...TBD... | Slashed amounts are sent to treasury. From bbcde4be21ecb49ac0430ceeb992fd836eac5c1a Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:42:47 +0400 Subject: [PATCH 08/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 0508bb91..c0b1dda8 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -65,7 +65,7 @@ Slashed amounts are sent to treasury. | Account | Part | Type | | ------- | ---- | ---- | | Validator** | 5% | Fixed comission | -| Nominator + Validator** | 95% | Shared between nominators and validator || +| Nominator + Validator** | 95% | Shared between nominators and validator | ** 10% of validators rewards go to Treasury | Account | Part | From 7dbdf211580082fe7c805fdc5ddd957c9e550872 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:42:57 +0400 Subject: [PATCH 09/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index c0b1dda8..3b19e1fc 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -85,7 +85,7 @@ Slashed amounts are sent to treasury. ## Rewards -### From transaction fees +### From Transaction Fees | Account | Part | | -------- | ----- | From 7b25a5959ea1885f0cecd985d62d6af938a7a171 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:43:07 +0400 Subject: [PATCH 10/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 3b19e1fc..2cc1aeb3 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -75,7 +75,7 @@ Slashed amounts are sent to treasury. ### Current state -* 1 year withdrawal lock is implemented +* 1 year withdrawal lock is implemented. * Session period is 4 hours. Era period is quarter. (configured by `EpochDurationInBlocks`, `SessionsPerEra`). * Payout at the end of the session. Configured by runtime/mainnet/src/pos/session_payout/mod.rs From dd2b3b49149dc4e203b77a66826e23ad847d0325 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:43:17 +0400 Subject: [PATCH 11/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 2cc1aeb3..3360c75b 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -30,7 +30,7 @@ Schedule of APY will be next: After 30 years the APY stabilizes at 2% -### Current state +### Current State * Initial total supply is distributed to active nodes for now. * 18 decimals is done. (configured by MILLIGGX) From 5916e1034859d026ee1e7f189f3c464e4c3e40f2 Mon Sep 17 00:00:00 2001 From: Pavel Burylichev Date: Wed, 18 Oct 2023 15:43:53 +0400 Subject: [PATCH 12/12] Update src/sydney-testnet/tokenomics.md Co-authored-by: Matthew Doty --- src/sydney-testnet/tokenomics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sydney-testnet/tokenomics.md b/src/sydney-testnet/tokenomics.md index 3360c75b..ead92302 100644 --- a/src/sydney-testnet/tokenomics.md +++ b/src/sydney-testnet/tokenomics.md @@ -90,7 +90,7 @@ Slashed amounts are sent to treasury. | Account | Part | | -------- | ----- | | Treasury | 100% | -| Validator(block producer) | 0% | +| Validator (block producer) | 0% | | Burn | 0% | Fees are distributed each block.