Market-driven emission contracts

It is widely known that Ergo has emission done via a contract. Such approach then can be easily used by other tokens. And while ERG token’s emission schedule in the contract depends on time only (like for other cryptocurrencies), for other tokens contracts may be more involved.

For example, an emission contract may use data from reference market , such as a liquidity pool (provided as a read-only data input), to readjust emission based on current price in the pool (price on other markets will supposedly be about the same due to arbitrage).

For example, some token may have emission schedule which is starting with some initial reward per block, but then:

  • if price in the pool is below some target price, reduce emission (by X %)
  • if no reductions made for Y consecutive blocks (means for Y blocks price in the market is not less than the target), increase target price by Z%

Thus the contract will reduce emission when the price is below target price which is also being moved up with time (when market price is above it).

Hard to say how this design is secure in the presence of actors trying to maximize profit (in whether tokens or base asset). Could be a funny experiment after all.


NETA emission contract uses something quite similar mentioned here. The goal I was given for the NETA emission contract was this:

“Emit tokens so that the number of tokens emitted is equal to the price in NETA of the entire block reward minus pool fees, multiplied by a set additional percentage rate. The total ERG block reward must be sent as an output to the operator of the pool (anetaBTC Team), while the emitted tokens must be sent to miner holding contracts to be distributed afterwards.”

For example, let’s say pool fee is 3%, additional percentage rate is 10%, and block reward is 48 ERG.

Total amount to swap would be (48 - (48 * 0.03)) or 46.56 ERG. The current rate of ERG / NETA means that this would equal 18,600 NETA. With additional percentage rate, this would equal
(18600 + (18600 * 0.10)) or 20460 NETA per block reward.

To get the current price of NETA, the LP box is included as a data input. This makes for some interesting token emissions, as the number of tokens emitted is always pegged to the price of NETA in ERG + the additional percent rate.

So if NETA price goes down, more tokens are emitted to guarantee that the percent increase is pegged to the price of NETA. If NETA price goes up, then number of emitted tokens goes down as less tokens are needed to hit the percent increase on the price of NETA. This is actually the opposite of what you have above (where emission rate goes down when token price goes down, and vice versa).

In short, miners always receive more NETA than they would if they had mined ERG and swapped for it.
One day, I would really like to make a graph of the amount of NETA a single miner receives per block, as there are many factors that go into each miner’s payout (miner hashrate, pool hashrate, and price of NETA at time of emission)

ErgoScript for the contract can be found here: