As developers explore the EOSIO blockchain software, they will come across many different system accounts that a chain may choose to deploy. These are generally denominated by the prefix eosio.*. To help speed up your EOSIO education, we felt it would be useful to provide an overview of which system accounts exist, and what they each control.

What Are eosio System Accounts?

When launching an EOSIO blockchain, only one account initially exists, eosio. The eosio account contains the eosio.system contract, which provides the basic transactional capabilities of the chain. System accounts are then created by eosio, and provide much of the functionality and governance for the chain. These system accounts each control specific actions or funds within the eosio.system contract and other system-level contracts.

What Are the Names and Functions of the eosio System Accounts?

 eosio privileged – the original account on an EOSIO blockchain. It holds the eosio.system contract and associated data tables
 eosio.bpay this is where Block Producer rewards for produced blocks come from. It allots inflation based on the amount of blocks a Block Producer creates
 eosio.lost this contract was created to offer a solution for users who lost their EOS private key before the migration from the Ethereum blockchain to the EOS mainnet
 eosio.msig  privileged – the account that facilitates asynchronous review and signing of a multisig proposal on-chain for eventual execution
 eosio.names  used for holding funds from namespace auctions. Awarded namespaces are considered as fees and held by the account, while the remainder is returned once outbid. On the EOS mainnet, this amount flows into eosio.rex
 eosio.prods  an account with a dynamic permission structure based on the current schedule of Block Producers. It does not hold any contract
 eosio.ram  this account holds all EOS funds collected when a user purchases RAM, and also returns the sale price to a user when they release RAM
 eosio.ramfee  the fees collected from RAM trading. 0.5% of the value of each trade goes into this account. On the EOS mainnet, this amount flows into eosio.rex
 eosio.rex  all EOS tokens that users place into the REX platform will be held within this account, as well as proceeds from eosio.ramfee and eosio.names
 eosio.saving  where all unallocated amounts of network inflation go
 eosio.stake  this account holds all EOS that have been staked for either CPU or Network bandwidth
 eosio.token  the account with the smart contract that drives the main EOS token (issuance, transfers, etc)
 eosio.unregd  a contract on-chain that stores the Ethereum account information and token balances of all unregistered users to allow them to claim those tokens
 eosio.vpay  this is where Block Producer rewards for Votes come from. It allots inflation based on a Block Producer’s portion of votes
 eosio.wrap  privileged – for use by Block Producers in extreme circumstances to execute transactions on behalf of another account

Who Controls the eosio System Accounts?

When querying the blockchain for any of the system accounts, you’ll notice that both the owner and active permissions of each system account are generally controlled by the named permission eosio@active (this notation signifies the active permission of the eosio account). When you query the eosio account, you will find that its owner and active permissions are delegated to a separate account’s active permission, eosio.prods@active. eosio.prods – often referred to just as “prods” – is a dynamic list of the current 21 Block Producers, ordered alphanumerically. This is what gives special authority to a quorum of at least 15 of the Top 21.

What Is a Privileged Account?

Privileged accounts are accounts which can execute a transaction while skipping the standard authorization check. To ensure that this is not a security hole, the permission authority over these accounts is granted to eosio.prods

New system accounts can be proposed by anyone and created at any time. In fact, 2 of the system contracts for the EOS mainnet were made by the dfuse team (when we were operating the EOS Canada Block Producer).

We hope this helps to broaden your understanding of the underlying structure of an EOSIO blockchain. If you have any questions or comments, please come drop by our Telegram channel and let us know!

 

This article has been updated and shared from the original found here