What Are EOSIO System Accounts and What Do They Each Do?

in #eos5 years ago

What Are EOSIO System Accounts and What Do They Each Do?.png

Keen observers will have noticed that on the EOS blockchain there are system accounts that control various functions. These are all denominated by the prefix eosio.*. At EOS Canada, 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?

At the genesis of an EOSIO blockchain, only one account exists, eosio. The eosio account contains the eosio.system contract, which provides the basic transactional capabilities of the chain. System accounts are accounts that are created by eosio, other than the genesis accounts created from the snapshot of ERC-20 token distribution list. The system accounts each control specific actions 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 0.25% of inflation based on the amount of blocks a Block Producer creates
 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
 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
 eosio.saving  where the 4% of network inflation goes
 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 0.75% of 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?

If you were to query the blockchain for any of the system accounts, you’ll notice that both the owner and active permissions of each system account are 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. 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 and created at any time. As of now, the list above is complete.

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

This article was originally published on eoscanada.com