Launch

Opening batch auction

How the first 30 seconds of every launch fill at one clearing price.

Every launch opens with a batch auction so that nobody gains by being first.

Timeline

  1. createToken sets batchEndsAt = now + 30 s (the batch length is a platform parameter). The creator's dev buy, if any, is the first commitment.
  2. Until batchEndsAt, buyers call commitBatch(usdcIn). Commitments are capped per wallet at 5% of the graduation raise (620 USDG with the defaults). Commitments cannot be withdrawn.
  3. After batchEndsAt, anyone calls settleBatch() — the app does it for you, and the first buy, sell or claimBatch settles it implicitly.
  4. Each participant calls claimBatch() to receive tokens (and any refund). The claim portal lists unclaimed batch fills.

Settlement

The whole batch is treated as one buy: the 1% fee is taken on the total, and the remainder is pushed through the curve in one step. Every wallet receives tokens pro-rata to its commitment, which is the same as everyone paying the same clearing price (usdcUsed / tokensOut, emitted in BatchSettled).

If the batch alone would sell out the curve, only the USDG that fits is used: the fee is charged on the used amount, the token graduates in the same transaction, and the unused USDG is refunded pro-rata on claim.

Why it matters

Ordering within the first block is worthless, so there is nothing to snipe. Bots can still participate, but at the same price as everyone else, and only up to the per-wallet cap. Unclaimed batch tokens stay in the curve and are never swept at graduation.