Trustees are an elected group of dedicated addresses denoted in the core currency contracts as trusted. They are selected by Community Governance. Trustee addresses have one additional power over normal user addresses, which is the ability to participate in monetary policymaking.

Trustee Smart Contracts

Trustee addresses are managed by the TrustedNodes.sol contract in the smart contract system. The contract contains Trustee sets as cohorts which start at 0 and increment with each new set of Trustees. Useful functions of this contract:

  • getTrustedNodesFromCohort(uint256 _cohort) - fetches the list of Trustee addresses in a given cohort.

  • isTrusted(address _node) - checks if a given address is a Trustee.

  • numTrustees() - number of current Trustees.

Trustee Elections

Trustees are proposed to serve 1-year terms (therefore elections are proposed to take place annually). Trustee elections and replacements are carried out through the community governance process, where the proposal can be as simple as updating the registry of Trustee addresses.

The currency repository includes a proposal contract to vote in a new set of Trustees as well as a proposal to replace a single Trustee, but as the code is fully upgradable, this process can and likely will be modified going forward. The function called to upgrade Trustees is:

  • newCohort(address[] memory _newCohort) - the function called by policy contract to instantiate a new set of Trustees into the TrustedNodes contract.

Trustee Compensation

Trustees vest into reserved ECOx as compensation for their participation in monetary governance. Trustee incentives follow a suggested term of one year and the payout contract is funded only to cover that period.

Each time they successfully participate in voting, they earn a pro-rata portion of ECOx reserved for their term which becomes accessible after a one-year delay after the vote that earned it. All eligible rewards are withdrawn at once when claiming and being removed as a Trustee (through standard election or special decision) does not remove your right to rewards already earned.

Invalid votes (empty ballots, ballots that are not revealed, ballots that attempt to cheat the voting system, and ballots for trustees that never submitted a commitment) are counted as ballots ranking the default proposal as the first choice, with all other proposals left unranked. These types of proposals do NOT earn rewards for that generation.

Trustees claim vested ECOx in the TrustedNodes.sol by calling the redeemVoteRewards() function, and claim all outstanding rewards at once.

Last updated