A proposal to “halt” the bonding curve has passed here.
As I suggested in this post, the easiest way to pause/halt minting on the bonding curve is to adjust the minInvestment parameter to a large number. You can read more about what parameters of the bonding curve that DXdao can control in my post here.
The minInvestment is currently set to 0.001 ETH which you can confirm on etherscan.
You can see where minInvestment is checked in the DecentralizedAutonomousTrust code and thus where it could act to prevent buys:
As long as minting from the bonding curve is paused, DXD effectively has a fixed supply rather than the dynamic one following the curve that it has now.
Install a plugin to allow DXdao to interact with the bonding curve.
Conduct a thorough technical review to be sure of no adverse effects of setting the minInvestment parameter very high.
Make a proposal to update the minimum investment parameter to a number high enough to prevent any possible buys.
The bonding curve serves both as the fundraising mechanism for DXdao as well as the way in which profits are distributed back to DXD holders. Adjusting the minInvestment parameter should have no impact on the latter, but it does mean fundraising via the curve is paused. A concern that has been raised is that DXdao may not be able to unpause the curve in the future without having an adverse effect on the price, and is therefor limiting its future ability to fundraise. To illustrate, imagine the market price of DXD rises to 2 ETH, while the mint price of the bonding curve is stuck at the current amount of 1.0203 ETH. If DXdao were to unpause minting on the curve at that point, arbitrageurs would buy off the curve and sell into the market, crashing the price of DXD.
In my view this is not a major concern for a few reasons.
The ETH value of the treasury stands at $13.5M which represents many years of runway at the current burn rate.
A significant pre-mint of 100,000 DXD is vesting to DXdao. This represents over 2/3rd the supply of DXD. If DXdao does find occasion to fundraise again in the future, it could sell some of this DXD supply to do so.
Finally, the bonding curve itself is upgradeable, meaning that in the future it would be possible to deploy a new one which could enable fundraising to start at the prevailing market rate or whatever price is most desirable.
Thanks for this. In terms of schedule and proposal submission for the next steps,
[New Plugin Proposal: ~16 days to pass] - Install a plugin to allow DXdao to interact with the bonding curve.
[No proposal needed] - Conduct a thorough technical review to be sure of no adverse effects of setting the minInvestment parameter very high.
[Regular Proposal: ~8 days to pass] Make a proposal to update the minimum investment parameter to a number high enough to prevent any possible buys.
The proposal that raises minInvestment will need to be submitted after the Plugin Proposal and we’d want to finish step #2 before that proposal, but presumably those steps could be done concurrently.
We could submit the Plugin Proposal and then while it’s being voted on, do the technical review of the change with the aim to complete that when the Plugin Proposal passes. Then, we’d be set up for a Vote on raising minInvestment.
I can’t imagine a scenario where DXdao would decide to ‘turn on’ the bonding curve and undercut DXD holders, but it is technically possible. I guess the same risk applies to the DXD in the treasury, and interests seem to be aligned.
Is this all correct? What do we need to do to install the plugin?
Wanted to provide an update on the status of this process. The new plugin, step 1 in the process outlined above, is complete. However, we have discovered that the Alchemy UI is not exposing the functions needed from the bonding curve due to the fact the bonding curve uses a proxy contract pattern and the Alchemy UI doesn’t yet have the logic to expose the ABI from the implementation contracts used by the proxy. DAOstack is aware of the issue and working on a fix. Hoping this will be ready soon (next week?) and then the proposal can be made to pause the curve.
To illustrate the issue, see the GenericSchemeMultiCall on Alchemy. This screenshot shows how only the proxy contract’s functions are exposed in the UI, and not the necessary implementation contract’s functions: