graph TD
eosio --> |3.61% continuous_rate=0.03617097| annual_rate(Annual Rate 75.8M EOS/year)
annual_rate --> |16.45% inflation_pay_factor=60767| producer(Block Producer Pay 12.4M EOS/year)
vote_payfactor --> | 75% votepay_factor=40000 | eosio.vpay(eosio.vpay 9.3M EOS/year)
vote_payfactor --> | 25% votepay_factor=40000 | eosio.bpay(eosio.bpay 3.1M EOS/year)
producer --> vote_payfactor{% factor}
eosio --> |100% system fees| eosio.fees
eosio.fees --> weights_fees{% weights}
weights_fees -.-> |100% Donate To REX 1.0| rex
weights_fees -.-> |100% Distribute to eosio.bpay| bpay(21 producers)
annual_rate --> |83.55% unallocated bucket| eosio.saving(eosio.saving 63.3M EOS/year)
percent --> |53.71% percent=5371| eosio.reward(eosio.reward 34M EOS/year)
percent --> |29.55% percent=2955| eosio.grants(eosio.grants 18.7M EOS/year)
percent --> |16.74% percent=1674| eoslabs.io(eoslabs.io 10.6M EOS/year)
eosio.saving --> percent{% percent}
eosio.reward --> weights_rewards{% weights}
weights_rewards --> |100% Donate To REX 2.0| rex{eosio.rex}
Sender | Receiver | Allocation (%) | Amount/year |
---|---|---|---|
eosio | 100% | 75,959,037 EOS | |
eosio | eosio.saving | 83.55% | 63,300,000 EOS |
eosio | producer pay | 16.45% | 12,400,000 EOS |
producer pay | eosio.vpay | 75% | 9,375,035 EOS |
producer pay | eosio.bpay | 25% | 3,125,011 EOS |
eosio.saving | eosio.reward | 53.71% | 34,083,823 EOS |
eosio.saving | eosio.grants | 29.55% | 18,752,131 EOS |
eosio.saving | eoslabs.io | 16.74% | 10,623,034 EOS |
Build CDT (v4.0.1
)
git clone --recursive https://github.com/AntelopeIO/cdt
cd cdt
git checkout v4.0.1
mkdir build
cd build
cmake ..
make -j $(nproc)
Compile EOS System Contracts (v3.4.0
)
gh repo clone eosnetworkfoundation/eos-system-contracts
cd eos-system-contracts
git checkout v3.4.0
export CDT_INSTALL_DIR="<path>/cdt/build"
./build.sh
$ shasum -a 256 ./build/contracts/**/*.wasm
c54c983e9702d395af6262e7235aaee1f1e27b7126f9e19bf5964d63b4a7d8fa ./build/contracts/eosio.fees/eosio.fees.wasm
b78e2bfcceea88b337f195bb1e362a33cb5365aaaf02a2c32bcbf6698b1b832f ./build/contracts/eosio.system/eosio.system.wasm
0a16e1dac533c4558698c8754f41219839ba2a2b75e517e65ea2537f76681f49 ./build/contracts/eosio.token/eosio.token.wasm
$ shasum -a 256 ./build/contracts/**/*.abi
1b7153927691bc464602f0aadd8badfa25e92926342e6294967ad2f2cc66564e ./build/contracts/eosio.fees/eosio.fees.abi
ce92b0030ef8413c55de96bf807a5740181d02880b825ff98b7fe9b471d999c2 ./build/contracts/eosio.system/eosio.system.abi
6961da382f16caddc255acd287d3f19011aa1d4ddcc7be5955768b4629ec9b16 ./build/contracts/eosio.token/eosio.token.abi
https://github.com/eosnetworkfoundation/eos-system-contracts/releases
- Create new systems accounts for:
eosio.fees
(15/21) (eosio
+@eosio.code
)eosio.reward
(15/21) (eosio
+@eosio.code
)
- Deploy new
eosio
system contract - Deploy new
eosio.token
contract - Deploy new
eosio.fees
contract
- Set MSIG execution time
time.eosn::checktime
{
"time": "2024-06-01T00:00:00.000Z"
}
2.1. Unvest B1 tokens (35M EOS NET + 29.6M EOS CPU)
eosio::unvest
{
"account": "b1",
"unvest_net_quantity": "35007851.2340 EOS",
"unvest_cpu_quantity": "29662497.5145 EOS"
}
2.2. Tokens are retired from active supply
3.1. Set max supply 2.1B
eosio.token::setmaxsupply
{
"issuer": "eosio",
"maximum_supply": "2100000000.0000 EOS"
}
3.2. Issue fixed supply up to 2.1B (expected ~972M EOS) eosio.token::issuefixed
{
"to": "eosio",
"supply": "2100000000.0000 EOS",
"memo": "EOS Tokenomics"
}
4.1. Create new distribution accounts
eosio.mware
(2/2) (eosio.grants
+eoslabs.io
)fund.wram
(2/2) (eosio.grants
+eoslabs.io
) 4.2. Transfer 350M fromeosio
tofund.wram
4.3. Transfer 15M fromeosio
toeosio.mware
[
{ "from": "eosio", "to": "fund.wram", "quantity": "350000000.0000 EOS", "memo": "EOS Tokenomics" },
{ "from": "eosio", "to": "eosio.mware", "quantity": "15000000.0000 EOS", "memo": "EOS Tokenomics" },
]
4.4. Remaining ~607M EOS in eosio
to be distributed via producer pay & eosio.saving
5.2. Adjust inflation_pay_factor=60767
factor ratio to:
ratio | receiver |
---|---|
16.46% | block producers (bpay & vpay) |
83.54% | eosio.saving (Rewards, ENF & Labs) |
eosio::setpayfactor
{
"inflation_pay_factor": 60767,
"votepay_factor": 40000
}
5.3. Set 4 year halvening schedules (up to 20 years, 6 schedules)
eosio::setschedule (multiple actions)
[
{"start_time": "2024-06-01T00:00:00Z", "continuous_rate": 0.03617097},
{"start_time": "2028-06-01T00:00:00Z", "continuous_rate": 0.01808549},
{"start_time": "2032-06-01T00:00:00Z", "continuous_rate": 0.00904274},
{"start_time": "2036-06-01T00:00:00Z", "continuous_rate": 0.00452137},
{"start_time": "2040-06-01T00:00:00Z", "continuous_rate": 0.00226069},
{"start_time": "2044-06-01T00:00:00Z", "continuous_rate": 0.00113034}
]
5.4. Execute next schedule eosio::execschedule (no payload)
{}
6.1. Set eosio.saving
ratios
ratio | receiver |
---|---|
53.71% | Staking Rewards (eosio.reward ) |
29.55% | ENF (eosio.grants ) |
16.74% | Labs (eoslabs.io ) |
eosio.saving::setdistrib
[
{"account": "eosio.reward", "percent": 5371},
{"account": "eosio.grants", "percent": 2955},
{"account": "eoslabs.io", "percent": 1674}
]
7.1 Set incoming fees to 100% go to REX via donatetorex
strategy
eosio.fees::setstrategy
{
"strategy": "donatetorex",
"weight": 10000
}
7.2 Initialize fees contract to 600 seconds per epoch period
eosio.fees::init
{
"epoch_period": 600
}