What it is
A gradual Dutch auction (GDA), and its refinement VRGDA (variable rate gradual Dutch auction), extends the classic descending-price Dutch auction idea to an ongoing stream of issuance rather than a single one-time sale. Instead of one item whose price falls until it sells, the mechanism continuously issues a whole series of items — think NFTs minted one at a time over weeks — while a pricing formula automatically raises the price when sales run ahead of a target pace and lowers it when sales lag behind. It's a way to sell a continuous supply at close to its true market-clearing price without a human ever setting or adjusting the price manually.
How it works
- The issuer sets a target issuance schedule — for example, "we expect to sell roughly one item per day" — expressed as a function of time.
- The contract also defines a base price and a decay/growth rate, which control how quickly price reacts when actual sales diverge from the target schedule.
- At any moment, the current price is computed by comparing actual cumulative sales so far to the number that should have sold by now according to the target schedule.
- If sales are running ahead of schedule (more demand than expected), the formula raises the price to slow down buying and avoid selling out too early at too low a price.
- If sales are lagging the schedule (less demand than expected), the formula lowers the price, mimicking a classic Dutch auction's decay to attract buyers back to the target pace.
- Each individual purchase is a simple on-chain transaction at the currently quoted price — buyers don't wait for a scheduled "auction event," they can buy any time, and the price they see already reflects real-time demand.
- Over the full issuance period, this self-correcting mechanism tends to track a price close to what a perfectly informed seller would have set in advance, without anyone needing to forecast demand precisely upfront.
Why designers use it
- Lets an issuer sell a continuous or open-ended supply (not just a single lot) while still getting Dutch-auction-style market-driven pricing.
- Removes the guesswork of setting a single fixed mint price for a long-running sale, since the price adapts automatically to real demand.
- Prevents both failure modes of fixed-price continuous mints: selling out instantly at too low a price, and stalling because the price is too high.
- Provides a transparent, deterministic, auditable pricing rule that buyers can model and reason about, rather than an opaque or manually adjusted price.
Failure modes
- If the target issuance schedule is badly mis-calibrated relative to real demand, the price can swing to extremes (very high or near-zero) for extended periods before correcting.
- Sophisticated buyers can model the exact formula and time their purchases to moments of local underpricing, capturing more value than buyers who purchase based on need rather than formula-timing.
- Because price depends on cumulative sales-to-date, a single large burst of buying (or a bot sweep) can spike the price for everyone else shortly after, even if underlying demand hasn't structurally changed.
- Overly aggressive growth/decay rate parameters make the price swing so sharply that it becomes hard for ordinary buyers to predict what they'll actually pay from one moment to the next.
- If the underlying asset's true demand curve shifts permanently (not just noise around the schedule), a static target schedule set at launch can become stale and require a redeploy or governance update.
What to check before using it
- Base the target issuance schedule on the best available demand research, not an arbitrary round number, since the whole mechanism's accuracy depends on it.
- Model how the price responds to a burst of bot or whale buying in a short window, and whether that's an acceptable outcome for your launch.
- Choose growth/decay rate parameters conservatively at first — a schedule you can tune is safer than one that swings to extremes on day one.
- Decide whether the schedule and parameters can be updated post-launch if real demand diverges structurally from the initial assumption, and who controls that.
- Communicate the pricing logic clearly to buyers up front; because price changes with real-time sales, buyers need to understand it's not a bug when the price differs from what they saw minutes earlier.