Do not trust us. Rerun it.
A flock only has to be believed on one point: that everybody gets the same price, and that you can walk out near where you came in. Here is how each claim is checked, and the commands to check it yourself.
contract tests passing, 10 of them against the real Pons factory on a fork of Robinhood Chain
engine and ABI tests, pinned to real launches and to Foundry's cast
real flock launches on the fork, reproduced to the wei by the JS engine
real Pons launches replayed over 4 days, invariant error 7e-14
1. The contract, against the real chain
The flock contract is one file, contracts/src/Flock.sol: no owner, no upgrade, no fee of ours. It is tested two ways.
- On a mock factory (23 tests): windows and caps, deposits, leaving, oversubscription filled with the same fraction, refunds, cancellation, the one-day grace, a price floor that reverts the launch, reentrancy on refund and claim, a participant who refuses ETH, and fuzzing that every wei is accounted for.
- On a fork of Robinhood Chain (10 tests, including the vector run and a check of the Pons facts): a real flock launches a real token through the real Pons factory, buys on the real curve, and the tests check the result against the curve's formula. They also check that a bot buying right after pays more and is hit by the 99% snipe tax, that a member can sell back for about the fees, and that an oversubscribed flock refunds exactly.
End to end: engine/tests/e2e-fork.mjs starts a local fork of the chain, deploys the contract, and plays a whole flock using only the site's own JavaScript: the same code that builds the calls on the Open page encodes open, join, launch and claim, reads the Opened event back, and checks that the tokens bought equal the engine's to the wei and that every refund is exact (last run: passed).
Flock launches on the real chain, and the engine
| flock | creator tax | tokens bought (wei) | of supply | engine |
|---|---|---|---|---|
| 0.01 ETH | 2% | 5740664023199384506125347 | 0.57% | identical |
| 0.05 ETH | 2% | 28059010702921608330922765 | 2.81% | identical |
| 0.1 ETH | 2% | 54586381541924592009003939 | 5.46% | identical |
| 0.2 ETH | 2% | 103521878335112059765208110 | 10.35% | identical |
| 0.25 ETH | 2% | 126137841352405721716514954 | 12.61% | identical |
Each row is one real launch of one real token on a fork of the chain, written by contracts/test/Vectors.t.sol. The engine that draws this site computes the same numbers, to the wei, including the reserves of the curve and what a sale returns.
2. What we read on the chain
| fact | value | how it was read |
|---|---|---|
| start of the curve | 1.68 ETH virtual quote, 1e27 token wei | reserves of a fresh curve |
| curve fee | 1% | quote reserve after a real buy |
| snipe tax | 99% for the first 3 seconds | factory snipeTaxStartBps and snipeTaxSeconds |
| exemptions | the launcher and the fee recipient are exempt | trace of a real launch |
| creator tax | Pons allows up to 10%; a flock allows 0% to 5% | factory maxCreatorTaxBps; launches at 0, 0.01, 0.5, 1, 3 and 5% on the fork |
| graduation | 4.2 ETH raised | factory event and curve data |
| round trip of a lone flock | (1 − fee − tax)², about 94.1% at 2% tax | real buy and real sell on the fork, within 2 wei |
3. The market numbers
The premiums, the share of the first wallets and the outcomes by flock size come from research/measure*.mjs, run over 8,135 Pons launches on Robinhood Chain seen over 4 days up to 2026-10-11. Every trade of every curve was replayed (blocks 82,486,873 to 85,808,992); reserves rebuilt from the logs match the constant-product invariant to 7e-14. The Lab uses a random sample of 700 of them.
Limits of the measurement: one four-day window, ETH pairs and the default configuration only, exits modelled on the curve, so graduated tokens (26) are not followed past graduation. It says what happened, not what will.
4. Rerun everything
git clone <the repo> starling && cd starling node --test engine/tests/engine.test.mjs engine/tests/abi.test.mjs # engine + ABI cd contracts && forge test # mock and fork tests (needs network) node research/measure.mjs && node research/measure2.mjs && node research/measure3.mjs node _tools/verify-all.mjs # all of it, writes research/verify-report.json
Last full run: 2026-10-13 10:58 UTC, 17/17 engine tests, 33 contract tests, 0 failures.