Skip to content
generated from refcell/femplate

Variable Rate Gradual Dutch Auctions with Martingale Price Correction.

License

Notifications You must be signed in to change notification settings

whitenois3/mvrgda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mvrgda • ci license solidity

Variable Rate Gradual Dutch Auctions with Martingale Price Correction.

Why?

NOTE: it is strongly recommended that you have read the VRGDA White Paper before proceeding.

Idea: adjust VRGDA to produce negative prices.

That's right, pay the users to mint.

"But why?"

— WINTΞR 💙💛 (@w1nt3r_eth) September 9, 2022

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).

Example

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:

Blueprint

lib
├─ VRGDAs — https://github.com/transmissions11/VRGDAs
├─ forge-std — https://github.com/foundry-rs/forge-std
├─ solmate — https://github.com/transmissions11/solmate
src
├─ LinearMVRGDAAn instantiable Linear VRGDA with Martingale Price Correction
├─ MVRGDAA Variable Rate Gradual Dutch Auction with Martingale Price Correction
test
└─ ...

License

Unlicense

Acknowledgements

Disclaimer

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.

About

Variable Rate Gradual Dutch Auctions with Martingale Price Correction.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published