Monetary Policy Levers

The monetary policy levers are provided to the Trustees to aid them in their goal of providing monetary policy for the system. There are 3 monetary policy levers initially built into the Eco Protocol:

  1. Linear Supply Change

  2. Random Supply Inflation

  3. Interest Rate: Lockup Contract

To understand in more detail how these levers are executed in the policy system, please see the Executing Monetary Policy section.

The Whitepaper and Eco Manual mention an additional lever, Supplemental Transaction Fees, which is not enabled in v1 on the Ethereum mainnet, due to the high gas price of the implementation.

1) Linear Supply Change

The Linear Supply Change lever allows the Trustees to change the number of tokens in circulation by a percentage amount. This mechanism results in the account balances of all ECO token holders being adjusted by a multiplier (_linearInflation coefficient explained in the ECO Token section) that scales every ECO balance stored, including ECO locked up in contracts. Colloquially, this is a form of token rebasing. As you can see below, the _linearInflation coefficient scales the unscaled balance of the owner, to derive the final number of ECO the address owns.

InflationCheckpoints.sol
function balanceOf(address _owner) public view override returns (uint256) {
    uint256 _linearInflation = _checkpointsLookup(
        _linearInflationCheckpoints,
        block.number
    );
    return _balances[_owner] / _linearInflation;
}

The _linearInflation coefficient also scales the totalSupply of the token.

InflationCheckpoints.sol
function totalSupply() public view override returns (uint256) {
    uint256 _linearInflation = _checkpointsLookup(
        _linearInflationCheckpoints,
        block.number
    );
    return _totalSupply / _linearInflation;
}

As you might have noticed above, the ECO balance for an address is actually equal to the stored balance divided by the inflation coefficient. As a result, the stored balances are stored in unscaled units in the contract, referred to as "gons".

Lever Inputs

When Trustees propose a Linear Supply Change, they input the following variables:

  • Inflation Coefficient - An integer scale factor denoting 18 digits of fixed precision. This number, multiplied by 10^-18 (a.k.a. “Wei”) is the multiplication that is done to the current scale factor for inflation when this is applied. Inflation is done relative to the current supply of ECO (as opposed to the initial supply).

2) Randomized Supply Inflation

The Random Inflation mechanism allows Trustees to allocate ECO tokens to a random subset of addresses. If calling this function, the Trustees define new supply to be minted (as a percentage in the dApp), and how many addresses will claim it—effectively determining the spread of newly minted ECO supply. Every ECO address is eligible to be selected through a verifiably random selection process and is able to be selected multiple times. In the initial implementation, the probability of being selected for each claim is directly proportional to the address balance.

Addresses are selected based on a Merkle hash of all user balances. The Merkle hash is agreed upon via a gamified process (described in the executing monetary policy section) where observers are incentivized to propose correct hashes and challenge incorrect hashes. Each selected recipient is entitled to a share of the new supply distribution. As each selection is independent, there is a chance that multiple rewards can go to the same address. Random Inflation drips out over 28 days after the contract is instantiated.

Delegating voting power derived from ECO gives the chance to win random inflation to the delegate selected by an address. Please be aware of this when delegating ECO. Because ECOx is not eligible to win random inflation, delegating ECOx does not have this same effect.

The following addresses are currently blacklisted in the Eco Protocol:

  • Eco Association

    • 0x98830c37Aa6aBDaE028Bea5c587852c569092d71

    • 0x99f98ea4A883DB4692Fa317070F4ad2dC94b05CE

  • Eco Inc

    • 0xA201d3C815AC9D4d8830fb3dE2b490B5b0069ACa

  • Community Treasury

    • 0x8c02D4cc62F79AcEB652321a9f8988c0f6E71E68

  • Uniswap V2 Pool

    • 0x09bC52B9EB7387ede639Fc10Ce5Fa01CBCBf2b17

Lever Inputs

When Trustees propose Random Inflation, they input the following variables:

  • Inflation Reward - The amount of ECO (in Wei) that each recipient is entitled to. This is represented as a percentage input in the dApp.

  • Number of Recipients - The number of rewards that will be distributed.

3) Interest Rate: Lockup Contracts

The Interest Rate Lockup mechanism allows the Trustees to incentivize users to lock up their funds for a given duration at a fixed interest rate. This should apply short term-deflationary pressure by removing tokens from circulation for a defined period of time.

When an Interest Rate Lockup contract is passed, users have the first two days (48 hours) of the next generation to place their funds in the lockup contract. Funds can be withdrawn early, but this action incurs a withdrawal penalty equal to the amount of interest that would have been received had they completed the term and also forces the user to forfeit any interest. Funds may also be withdrawn on time on behalf of another user (as the effect is only positive), but they may not be withdrawn early on behalf of another user. Users do not forfeit their voting power by using the lockup; the lockup delegates the voting power back to the user upon deposit.

Interest is not compounding. It is computed when funds are deposited and minted for the user on successful withdrawal.

Linear Supply Changes affect the principal value placed in the lockup contract. The interest, however, is calculated at the beginning of the period and will not change even if the user funds do.

Lever Inputs

When Trustees propose an Interest Rate Lockup contract, they input the following variables:

  • Lockup Duration - The duration of the lockup contracts (interpreted by the contract in seconds). This is the length of time after the deposit window closes that tokens must remain in the lockup contract in order to earn interest.

  • Interest Rate - An integer denoting 9 digits of fixed precision representing a decimal interest to be paid out to a depositor in addition to their initial deposit. The Interest Rate, multiplied by the amount of deposited ECO, and then divided by 10^9 is the amount of extra ECO that is awarded to a depositor after the Lockup Duration has passed.

The Lockup Duration should not be shorter than the 48-hour deposit window.

Last updated