> For the complete documentation index, see [llms.txt](https://docs.rei.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rei.network/developer/system-contracts.md).

# System Contracts

### Public Modules

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

### Private Modules

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