EIP-12: Create Reserve

EIP-12: Create Reserve

Author: @eqparenthesis

Overview

Recently, we’ve seen periods where demand has far outpaced supply expansion. Raising the supply change limit could be dangerous as it would greatly increase the growth rate while potentially not actually causing sell pressure in the near term. An alternative to this would be to create a mint-then-sell mechanism to inject supply directly into the market.

This mechanism is already part of the v2 proposal, so its addition would be in line with the long term direction of the project. Adding this piece now will give us an extra down-regulation lever, while maintaining our reflexivity, and will allow us to preemptively build a reserve ahead of v2.

Implementation

Instead of building a specific mint-then-sell lever, we can skip directly to a simple Reserve contract, who’s sole job is to manage the reserve funds.

Treasury vs Reserve

The treasury was created specifically to manage ESD for the purpose of funding grants to ecosystem contributors, while the reserve’s funds can be any token except ESD, and it is specifically used to stabilize the price of ESD. Important to note that the reserve does not constitute any sort of backing for ESD, these funds are mainly to be use to aid with supply regulation.

Permissions

The reserve has permission to mint new ESD through the DAO, and the DAO has permission to withdraw all of the reserve’s funds. We separate these into two contracts mainly for ease of accounting especially since the reserve will likely hold multiple different tokens.

Orders

The DAO (usually via governance proposals) can create orders which are long-standing limit orders from any token to any token at a specified price.

These can be used to manage the reserve by:

  • Creating an upper-limit on ESD price by selling for USDC well-above peg
  • Swapping USDC for DAI, COMP, UNI or other decentralized reserve assets
  • Creating a last-resort backstop by buying ESD with USDC well-below peg

The reserve never holds ESD. When the maker token is ESD, the ESD is minted before selling, likewise when the taker token is ESD, the proceeds are burned.

Initial Proposed Order

Sell ESD @ 1.15 USDC in an unlimited amount.

  • makerToken: ESD
  • takerToken: USDC
  • takerPrice: 1.15
  • orderAmount: uint256(-1)

Open questions

Should we instead actually sell on Uniswap? This would be significantly more complex to implement + would be front-runnable so it would likely never raise funds.

We should have a total cap for orders, but should we also have per-epoch rate-limiting? Without this, a large buyer could mint a large % expansion in a single epoch if the market price was sitting at the price ceiling.

Do we need to include more extensibility for how the funds can be used (e.g. lending, staking etc) or can this be added later via an upgrade + migration?

When is the right time to propose this? It may not be now, so this should be part of the discussion.

4 Likes

I think this is a great idea. No issues with anything proposed.

Open Questions:

  1. Y/N Uniswap?
    Agreed on the difficulties with Uniswap, it probably makes sense to make it a contract that users can directly buy from.

  2. Should there be rate limiting?
    Having a new issuance cap per epoch makes sense. It should be a function of new issuance that epoch.

  3. Do we need flexibility?
    Definitely something worth thinking about. It’s not as time sensitive so it makes sense to have it be a future upgrade.

  4. When is the right time to propose this?
    It makes sense to take advantage of the excess demand right now to build up a reserve that’ll help dampen the eventual contraction. I also think there’s utility in starting early because as the reserve grows, it’ll function as more of a secondary layer of protection as users step in ahead of it to buy, making it more effective.

DAO holder here, I think there should be a per-epoch ceiling. And it should come from the expansion rewards that’s distributed to the DAO, all the way up to taking 100% of DAO’s expansion rewards.

Here are the reasons:

  • Supply expansion rewards distributed to the DAO cannot enter the market until after waiting for 15 epochs, which makes it an inefficient method of downregulating ESD. This mechanism, if passed, would simulate what happened before timelocks were introduced.
    • This is also the reason why I think LP’s share shouldn’t be touched since it can enter the market with no timelock.
  • Ideally, reserve mechanisms won’t kick in until ESD is well above the peg. If ESD is too high above the peg, it means DAO isn’t doing a good job. This mechanism would then align the incentives of the DAO and downregulation.
    • Currently, the DAO has no incentives to downregulate ESD or even unbound ESD during a supply expansion, no matter how far off peg ESD is.
  • Limiting the per-epoch limit does not change the overall emission limit. Which reduces uncertainty and improves predictability.

Just a thought here: Why not give an option to the DAO holders to sell first? For example:
If TWAP is above 1.15, then the DAO bonders can directly unbond and sell without any locks. If after one epoch the price is still at ceiling then the reserve can be used. This ensures we are not unnecessarily minting extra ESD when the demand can be met with existing supply and also gives a chance for the DAO to exit.

1 Like

Directionally this seems interesting. The problem it seems it that supply increase doesn’t quickly lead to a liquidity increase which leads to a cycle of going way off peg and increasing speculative bonders. A related option might be to have some proportion of new supply given to bonders be immediately liquid (with the exact proportion perhaps dependent on the degree to which the system is off peg?)

1 Like

Strongly agreed here - I don’t think we want to let new holders enter with unlimited size since they are able to begin receiving expansion rewards the following epoch. The “cooling” period in ESD v2 solves this and should allow uncapped mint+sell

1 Like

I think the proposed model actually ends up being equivalent to what you’re suggesting. It’s essentially like the bonders’ newly minted ESD getting immediately sold for USDC instead of directly given to the bonders. The bonders kind of own the USDC (although it’s not yet directly redeemable) since they own the DAO.

1 Like

New speculative bonder here.

As much fun as I am having, several epochs of minting have yet to push ESD down far enough to restore the peg, so having a contract that can actually just sell ESD when it’s too far above the peg would be good.

Stealing the DAO’s expansion rewards would be neat, but more complex. It’s hard to evaluate that trade-off.

Having two contracts to manage might cause trouble with the nice and simple replace-the-whole-contract governance system.

The biggest concern I have is that a reserve full of USDC that can be used to buy ESD below the peg looks a lot like a fractional reserve, and makes it look like the other mechanisms in place can’t be relied upon to keep the peg up. As soon as we add a buy order to this, I’m worried we’re going to get a bank run on the reserve as everyone sells ESD into it. I think it might actually be better to leave faith in the coupon system (or its replacement) as the only way to hold the peg up, and deliberately squirrel away the USDC elsewhere, where we can’t be expected to use them to support the peg. Maybe put them in the treasury, or burn them.

2 Likes