The algorithmic treasury is an addition to the Dollar Protocol. in order to avoid the death spiral during negative rebase, especially when the protocol is young and not widely used.
It is an evolution of the current Treasury contract.
The Algorithmic Treasury should work alone and no governance work is needed.
The Treasury is a smart contract that operate on a set of reserves
Operations that should be possible in the Treasury are (can be called by anyone):
- Sell USD to buy the reserve currency If USD price is above the sellLimit, the Treasury sell some USD tokens to buy reserve up to the sellLimit price. Nothing is done if there if no USD tokens are in the contract.
- Sell reserve currency to buy USD If USD price is below the buyLimit, the Treasury sell some reserve tokens to buy USD up to the buyLimit price. Nothing is done if there is no reserve tokens
- Sell reserve currency to buy&burn SHARE If USD price is above $1 and the reserve market cap is above the USD markey cap * reserveLimit then SHARE tokens are bought with the reserve tokens.
On a positive rebase, all newly minted USD will be deposited to the Treasury that will sell them to decrease the price of USD and accumulate reserves. Notice that if too much reserve are accumulated, it will be used to burn SHARE tokens (increasing the price of SHARE).
While SHARE holders will no longer have the pleasure to find new USD tokens in their wallet, this operation create the same wealth for SHARE holders and is more effective. For instance it avoid USD token to be trapped in smart contracts (for instance the ETH-SHARE Uniswap LP, but almost anytime you stake SHARE). This remove the aquaponic mining potential of SHARE, reducing its value. removing USD distribution increase therefore the SHARE value (most likely at some marketing cost).
One might say that if USD is conserved in the reserve and not used to burn SHARE tokens, it is at the expense of SHARE holders. But the reserve is owned indirectly by SHARE holders so there is not a huge difference. Moreover, those reserves reduce highly SHARE dilution on negative rebase.
Most valuation methods use business value + treasury value to value a company, it would be the same here. The stock market is a very good example (the stock price decrease by the amount of the dividend when it’s given to shareholder).
In the current system, USD tokens are burnt and new SHARE token are minted, diluting SHARE holders. If the treasury has reserve it will avoid this process because USD buying will take place at a higher price point than USD burning.
When the treasury has no more reserve, the USD burning and SHARE minting resume as USD price fall below the process threshold.
The treasury act as a first level USD price protection to avoid SHARE dilution.
Those bought USD will be converted into reserves when USD price gets above sellLimit.
Those USD tokens might be considered to be outside of the circulating supply. It would be the same if we just burn them (maybe we should?).
I suggest the reserve token to be ETH. It is censorship resistant and doesn’t have any protocol risk. It make sense while the Dollar Protocol is only on Ethereum. The issue is that the price can fall and reduce our negative rebase insurance.
- sellLimit: Price when USD is sold on the market for reserve tokens. I suggest to start with $1.05 then reduce it progressively to $1.01.
- buyLimit: Price when USD is bought on the market using reserve tokens. I suggest to start with $0.95 then increase it progressively to $0.99 when USD become mainstream.
- reserveLimit: The maximum ratio of the reserve versus the USD market cap. Above that, reserve is used to burn SHARE. I suggest to start with 100% to avoid any death spiral at the beginning of the protocol (except if the reserve currency depreciate). Then reduce it progressively to 10% when there is wider acceptance.
Managing multiple currencies
In order to keep thing simple and stay antifragile, an algorithmic treasury will be instantiated per currency.
It would always be possible to transfer reserve token between treasuries if needed/wanted by governance.
We might want to incentivize call to the the treasury fonctions. Alpha Homora gives 3% of the profit to the caller. It would work best is the rebase on the usd contract is also something that can be called anytime.
Limit USD burning to the Algorithmic Treasury
As an addition, we might want to allow only the Algorithmic Treasury to be able to burn USD for discounted SHARE (and buyback USD).
The Treasury can always mint USD so it is always possible. The ending USD position can be kept or burned (same impact)
It would have those following pros:
- The SHARE dilution will be the same for every SHARE holders. No one can exploit a great discount to increase its position at the expense of other SHARE holders. Basically, we no longer care if the discount is too big for any reason. The arbitrager no longer keep a huge profit.
- It is more efficient as the arbitrage profit is not sold by the Treasury for ETH (or whatever outside money some arbitrageurs can use). Therefore, for the same SHARE dilution we have a better USD price increase.
Wouldn’t the ability for the Treasury to mint SHARE and sell them for USD be the same but easier to understand (and no discount issue)?
PS: Overall, it seems that the whole process can be simplified by merging the Treasury and the rebase (if reserveLimit = 0 it would work the same).