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
createTokensetsbatchEndsAt = now + 30 s(the batch length is a platform parameter). The creator's dev buy, if any, is the first commitment.- Until
batchEndsAt, buyers callcommitBatch(usdcIn). Commitments are capped per wallet at 5% of the graduation raise (620 USDG with the defaults). Commitments cannot be withdrawn. - After
batchEndsAt, anyone callssettleBatch()— the app does it for you, and the firstbuy,sellorclaimBatchsettles it implicitly. - 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.