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.abihttps://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
eosiosystem contract - Deploy new
eosio.tokencontract - Deploy new
eosio.feescontract
- 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 fromeosiotofund.wram4.3. Transfer 15M fromeosiotoeosio.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
}