$ONSET is live on Robinhood Chain CA: 0x3c3a3B0fA97a5FE881df785F6a34b8F5dae490f1 · Comissions share in —
Fair launch infrastructure — v0.4 · testnet

The first block decides everything.

When a token opens, snipers take the bottom of the curve before a human finishes reading the ticker. Onset reshapes those opening blocks so being fast stops being worth anything.

A launch isn't unfair because people are greedy. It's unfair because the mechanism pays whoever has the lowest latency.

Change what the mechanism rewards and the outcome changes with it. That's the whole thesis — everything below is the engineering that follows from it.

Block 01 of 08

Orders arrive, sealed

Scroll to advance the opening. Orders enter a batch instead of executing on arrival — nothing settles yet, so nothing can be front-run.

0%
to bots
0%
to humans
0
wallets filled
Mechanism

Three changes to the opening

None of these are exotic cryptography. They're auction design applied to the first sixty seconds of a token's life.

01

Batch opening window

Orders in the window are collected and settled at a single uniform clearing price rather than in arrival order. Everyone in the batch pays the same. Being first buys you nothing, so the latency race loses its prize.

02

Bounded early allocation

Each address is capped for the duration of the window. A bot operator can still split across a hundred wallets, but the cost of doing so scales linearly while the advantage gained does not.

03

Pre-committed terms

The deployer signs the parameters — caps, window length, liquidity lock, allocation — before the pool opens. The commitment is public and verifiable, so terms can't quietly shift once buying starts.

Simulator

Tune the opening,
watch who gets the supply

Two dials decide almost everything. Widen the window and tighten the cap and bot share collapses — but the launch takes longer and price discovery slows. No setting wins on every axis.

Opening window6 blocks

How long orders are batched before settling at one clearing price.

Per-wallet cap20.0%

Maximum share of opening supply a single address can take.

Bot pressure60%

Share of incoming order flow coming from automated snipers.

Hover any block to inspect how it filled. These values also flow into the terms sheet you sign further down.

38%
supply to bots
62%
supply to humans
180
unique holders
72s
time to open trading
block 1block 6
Hover a block to see how it filled.
bots humans

An illustrative model, not measured network data. Bot share decays as the window widens and the cap tightens, since neither speed nor size converts into advantage.

Price

Why the bottom is worth racing for

Price is a function of supply sold. The left edge is cheap by construction — which is exactly what makes the opening blocks worth attacking.

Bonding curve — scrub to inspect 0.0000041 ETH

Move across the curve. The shaded band shows how far price can run inside the opening window at your current cap.

12%
supply sold
1.0×
vs opening price
$41k
implied mcap
Integrate

One config, before the pool opens

// commit launch terms, then open under them
import { Onset } from "@onset/launch";

const launch = await Onset.prepare({
  curve:      { type: "exponential", reserve: "native" },
  window:     { blocks: 6, settlement: "uniform-price" },
  perWallet:  { capBps: 2000 },
  liquidity:  { lock: "180d", burnLp: true },
  deployer:   { allocationBps: 0 },
});

// terms are public before anyone can buy
await launch.commit(signer);
await launch.open();
Commit

Seal the terms
before the pool opens

Terms are only worth something if they're fixed in public beforehand. This sheet is generated from the simulator above — sign it and it becomes a commitment anyone can check.

Launch terms — draft

Unsigned, not yet binding

  • Opening window6 blocks
  • Settlementuniform clearing price
  • Per-wallet cap20.00%
  • Liquidity lock180 days · LP burned
  • Deployer pre-allocation0%
deployer — not connected —
nonce · issued
1

Identify the deployer

Reads your public address, network, and balance. Nothing else is requested.

2

Sign the sheet

Your wallet shows the exact terms as plain text. Read them there — never trust what a website claims it's asking for.

Onset never asks for a transaction, token approval, or spend permission. A signature here moves no funds and grants nothing.
3

Anyone verifies it

The signature recovers to an address. If it matches the deployer, the terms are provably theirs — no trust in Onset required.

Wallet extensions can't inject into an embedded preview frame — open the deployed page in a real tab, or walk through the flow above.