Variable Rate Gradual Dutch Auctions with Martingale Price Correction.
NOTE: it is strongly recommended that you have read the VRGDA White Paper before proceeding.
Idea: adjust VRGDA to produce negative prices.
— WINTΞR 💙💛 (@w1nt3r_eth) September 9, 2022
That's right, pay the users to mint.
"But why?"
↓
Variable Rate Gradual Dutch Auctions (VRGDAs) are a novel token issuance mechanism that excel at letting you sell tokens close to a custom schedule over time by raising prices when sales are ahead of schedule and lowering prices when sales are behind schedule.
But, while the price may be lowered over time, it may always be floored at zero. Additionally - there is one more static variable that is considered fixed, but may be made dynamic. More on this later.
VRGDAs provide a pricing mechanism that decays with time, but doesn't offer the ability for pricing to become negative. MVRGDAs are a variant of VRGDAs that allow for negative prices. By using the current reserves, a pushback
may be factored into the price. When the currentPrice
is below the targetPrice
, the pushback
comes into effect and is essentially a fraction of the reflexive price (the current reserves divided by amount sold), where the fraction is the targetPrice
less the currentPrice
, over the targetPrice
.
This formula is configurable as the current reserves is an overridable function getCurrentReserves
.
For more readingin on Martingale Correction, read about [Martingales](https://en.wikipedia.org/wiki/Martingale_(probability_theory).
Consider the following scenario:
You are issuing 672 gulags at an intended issuance of 1 gulag per hour for a total of one month - or precisely, 28 days (4 weeks).
// TODO:
lib
├─ VRGDAs — https://github.com/transmissions11/VRGDAs
├─ forge-std — https://github.com/foundry-rs/forge-std
├─ solmate — https://github.com/transmissions11/solmate
src
├─ LinearMVRGDA — An instantiable Linear VRGDA with Martingale Price Correction
├─ MVRGDA — A Variable Rate Gradual Dutch Auction with Martingale Price Correction
test
└─ ...
These smart contracts are being provided as is. No guarantee, representation or warranty is being made, express or implied, as to the safety or correctness of the user interface or the smart contracts. They have not been audited and as such there can be no assurance they will work as intended, and users may experience delays, failures, errors, omissions, loss of transmitted information or loss of funds. The creators are not liable for any of the foregoing. Users should proceed with caution and use at their own risk.