# System Contracts

### Public Modules

| Contract Name                                                                    | Description                                                                      | Address                                      |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------- |
| [StakeManager](https://docs.rei.network/developer/system-contracts/stakemanager) | A smart contract used for node election                                          | `0x0000000000000000000000000000000000001001` |
| [Fee](https://docs.rei.network/developer/system-contracts/fee)                   | A smart contract that accepts native token(REI) deposit and calculates user fees | `0x0000000000000000000000000000000000001005` |
| [ContractFee](https://docs.rei.network/developer/system-contracts/contractfee)   | A smart contract for registering contract creators and setting contract fee      | `0x000000000000000000000000000000000000100b` |

### Private Modules

| Contract Name                                                                                  | Description                                                                                                    | Address                                      |
| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| [Config](https://docs.rei.network/developer/system-contracts/config)                           | Global config contract                                                                                         | `0x0000000000000000000000000000000000001000` |
| [UnstakePool](https://docs.rei.network/developer/system-contracts/unstakepool)                 | Un-stake asset pool                                                                                            | `0x0000000000000000000000000000000000001001` |
| [ValidatorRewardPool](https://docs.rei.network/developer/system-contracts/validatorrewardpool) | A smart contract that keeps validator reward for validator                                                     | `0x0000000000000000000000000000000000001004` |
| [CommmissionShare](https://docs.rei.network/developer/system-contracts/commissionshare)        | A smart contract that keeps commission reward for all staking user, dynamically deployed for each validator    | -                                            |
| [FreeFee](https://docs.rei.network/developer/system-contracts/freefee)                         | A smart contract that calculates user daily free fees                                                          | `0x0000000000000000000000000000000000001006` |
| [FeePool](https://docs.rei.network/developer/system-contracts/feepool)                         | A smart contract that assigns REI rewards to miners according to miner shares every 24 hours                   | `0x0000000000000000000000000000000000001007` |
| [Router](https://docs.rei.network/developer/system-contracts/router)                           | A router smart contract, the blockchain system will only interact with router contract                         | `0x0000000000000000000000000000000000001008` |
| [FeeToken](https://docs.rei.network/developer/system-contracts/feetoken)                       | An ERC20 smart contract, only provides `balanceOf` method for users to query the fee(Stake to own) balance     | `0x0000000000000000000000000000000000001009` |
| [FreeFeeToken](https://docs.rei.network/developer/system-contracts/freefeetoken)               | An ERC20 smart contract, only provides `balanceOf` method for users to query the free fee(Free to own) balance | `0x000000000000000000000000000000000000100a` |

{% hint style="info" %}
The blockchain system will only send transaction to **Router** contract
{% endhint %}
