Skip to content

This demo runs on a simulated chain with a demo wallet. Simulated demo. Use a real NEAR wallet on testnetReal wallet on testnet

Bot Arena

The same 200 people and 5 sniper bots go through Sealround, a bonding curve and a first-come fixed-price sale, with the bots acting first.

What bots made and what people paid, by launch type

Sealround

Bot profit
0USDC
15.7% of supply bought
People paid
1.00×
the bots' price

Bonding curve

Bot profit
1,269USDC
34.5% of supply bought
People paid
2.61×
the bots' price

Fixed price, first come

Bot profit
177USDC
20.9% of supply bought
People paid
1.00×
the bots' price

Simulated: averages over 60 seeded runs, with demand from 0.5× to 4× supply. Real launches will vary.

Results by launch type

The average of 60 runs, with the lowest and highest run under it.

  • Bot share of supplyLower is better
    Sealround
    15.7%
    9.1 to 34.3%
    Bonding curve
    34.5%
    28.7 to 43.1%
    Fixed price, first come
    20.9%
    14.7 to 34.3%
  • Bot profitLower is better
    Sealround
    0 USDC
    0 to 0
    Bonding curve
    1,269 USDC
    700 to 2,068
    Fixed price, first come
    177 USDC
    0 to 683
  • Human price premiumLower is better
    Sealround
    1.00×
    1.00 to 1.00×
    Bonding curve
    2.61×
    1.49 to 3.92×
    Fixed price, first come
    1.00×
    1.00 to 1.00×
  • Humans filledHigher is better
    Sealround
    59.5%
    37.0 to 84.0%
    Bonding curve
    50.1%
    23.0 to 92.5%
    Fixed price, first come
    58.2%
    28.0 to 85.0%
  • Holder concentrationLower is better
    Sealround
    0.50
    0.41 to 0.64
    Bonding curve
    0.52
    0.44 to 0.62
    Fixed price, first come
    0.50
    0.39 to 0.64
What each metric measures
Bot share of supply
Tokens bought by bots at launch ÷ all tokens bought at launch.
Bot profit
USDC bots receive selling to later human buyers, minus what they paid for the tokens they sold. Tokens they cannot sell count as zero.
Human price premium
Median price per token paid by humans who got tokens (launch plus pool) ÷ the average price bots paid at launch.
Humans filled
Share of the humans holding any tokens at the end, from the launch or the pool.
Holder concentration
Gini coefficient of final holdings across every account holding tokens. 0 = equal, 1 = one holder.

Each metric as demand rises

Tokens bought by bots at launch ÷ all tokens bought at launch.

SealroundBonding curveFixed priceOne run. Lines average 7 runs.
Demand: total human budget ÷ (supply × launch price)
All 60 runs as a table
Bot share of supply for every run
RunDemandSealroundBonding curveFixed price
10.50×34.3%43.1%34.3%
20.56×27.2%36.4%27.2%
30.62×26.6%39.3%26.6%
40.68×28.0%39.8%28.0%
50.74×25.4%38.4%25.4%
60.80×27.6%39.8%27.6%
70.86×27.2%41.8%27.2%
80.92×22.0%36.9%22.0%
90.97×19.9%36.1%19.9%
101.03×18.8%35.5%18.9%
111.09×19.8%36.5%21.0%
121.15×16.7%33.0%17.4%
131.21×17.3%34.9%19.1%
141.27×20.3%38.1%24.2%
151.33×14.5%31.8%16.1%
161.39×16.7%35.0%19.2%
171.45×15.6%33.6%18.5%
181.51×16.1%35.0%20.0%
191.57×15.1%33.8%18.6%
201.63×14.0%33.2%18.2%
211.69×12.7%30.6%15.9%
221.75×18.1%37.6%23.9%
231.81×13.8%32.8%18.6%
241.86×16.7%35.1%21.3%
251.92×14.9%35.1%21.0%
261.98×13.8%33.3%19.3%
272.04×14.3%34.5%20.3%
282.10×12.3%32.5%18.2%
292.16×12.8%33.1%18.4%
302.22×13.9%33.8%20.2%
312.28×13.0%33.3%19.5%
322.34×13.5%33.7%19.5%
332.40×14.7%35.0%21.3%
342.46×12.2%32.0%17.8%
352.52×12.2%32.6%19.2%
362.58×12.8%33.5%20.2%
372.64×11.6%31.6%17.7%
382.69×13.8%35.6%22.8%
392.75×11.9%32.8%19.3%
402.81×13.4%34.9%21.5%
412.87×13.2%33.4%19.9%
422.93×12.6%31.8%17.9%
432.99×12.3%33.9%20.7%
443.05×14.2%34.3%21.3%
453.11×14.7%34.3%21.4%
463.17×10.7%31.1%17.3%
473.23×14.2%35.7%23.3%
483.29×12.6%34.4%22.2%
493.35×12.1%33.9%21.3%
503.41×9.1%28.7%14.7%
513.47×10.4%31.8%18.5%
523.53×15.0%35.8%24.2%
533.58×12.4%33.6%20.4%
543.64×10.9%32.0%18.5%
553.70×10.5%32.4%19.0%
563.76×11.8%33.5%20.5%
573.82×12.4%34.8%23.0%
583.88×11.2%32.8%19.9%
593.94×11.6%33.2%19.8%
604.00×12.6%34.7%22.6%

Sealround: supply burned as demand changes

Share of the 1,000,000 tokens for sale that nobody bought. Sealround burns them when the creator is paid, so the supply that reaches the market follows demand. Simulate your own sale

Average of 7 runsOne run
Demand: total human budget ÷ (supply × launch price)
All 60 runs as a table
Sealround supply burned and clearing price for every run
RunDemandBurnedClearing price
10.50×38%0.01 USDC
20.56×42%0.01 USDC
30.62×26%0.01 USDC
40.68×24%0.01 USDC
50.74×22%0.01 USDC
60.80×21%0.01 USDC
70.86×3%0.01 USDC
80.92×11%0.01 USDC
90.97×2%0.01 USDC
101.03×0%0.0101 USDC
111.09×0%0.0106 USDC
121.15×0%0.0105 USDC
131.21×0%0.011 USDC
141.27×0%0.012 USDC
151.33×0%0.0111 USDC
161.39×0%0.0115 USDC
171.45×0%0.0119 USDC
181.51×0%0.0124 USDC
191.57×0%0.0123 USDC
201.63×0%0.013 USDC
211.69×0%0.0125 USDC
221.75×0%0.0132 USDC
231.81×0%0.0134 USDC
241.86×0%0.0127 USDC
251.92×0%0.0141 USDC
261.98×0%0.014 USDC
272.04×0%0.0142 USDC
282.10×0%0.0148 USDC
292.16×0%0.0144 USDC
302.22×0%0.0145 USDC
312.28×0%0.0151 USDC
322.34×0%0.0145 USDC
332.40×0%0.0145 USDC
342.46×0%0.0145 USDC
352.52×0%0.0158 USDC
362.58×0%0.0159 USDC
372.64×0%0.0152 USDC
382.69×0%0.0165 USDC
392.75×0%0.0163 USDC
402.81×0%0.016 USDC
412.87×0%0.0151 USDC
422.93×0%0.0143 USDC
432.99×0%0.0169 USDC
443.05×0%0.015 USDC
453.11×0%0.0146 USDC
463.17×0%0.0162 USDC
473.23×0%0.0164 USDC
483.29×0%0.0176 USDC
493.35×0%0.0177 USDC
503.41×0%0.0161 USDC
513.47×0%0.0178 USDC
523.53×0%0.0162 USDC
533.58×0%0.0164 USDC
543.64×0%0.0169 USDC
553.70×0%0.0182 USDC
563.76×0%0.0173 USDC
573.82×0%0.0186 USDC
583.88×0%0.0179 USDC
593.94×0%0.017 USDC
604.00×0%0.018 USDC

Run one yourself

The same simulator runs in your browser. A seed and a demand level always give the same result.

2.00× supply
Sealround, everyone
0.0147USDC
Curve, bots
0.00387USDC
Curve, median human
0.00958USDC
2.48× the bots' price
Fixed price sold out
at 8m 53s
Sealround clearing priceBonding curve priceFixed price, until it sells outBot buys at second 0
Time after launch, square-root scale. Price in USDC per token.
  • Bot share of supply
    Sealround
    11.6%
    Bonding curve
    31.4%
    Fixed price, first come
    17.0%
  • Bot profit
    Sealround
    0 USDC
    Bonding curve
    922 USDC
    Fixed price, first come
    177 USDC
  • Human price premium
    Sealround
    1.00×
    Bonding curve
    2.48×
    Fixed price, first come
    1.00×
  • Humans filled
    Sealround
    58.5%
    Bonding curve
    45.0%
    Fixed price, first come
    54.5%
  • Holder concentration
    Sealround
    0.50
    Bonding curve
    0.53
    Fixed price, first come
    0.53

Recorded run: Lantern

A settled sale on this demo's simulated chain, sealed and cleared by the real code. Deposits and times were public during the window. Max prices stayed sealed.

Loading the recorded run

Method and assumptions

pnpm arena

One command reruns all 60 runs and rewrites the data behind this page. The simulator is in packages/arena; its README.md covers the model.

Base seed
20261114
Runs
60, demand 0.5× to 4×
Crowd per run
200 humans, 5 bots
Model assumptions 16

Written out from the simulator config on each run, so the list matches the code that made the charts.

  • Supply for sale: 1,000,000 tokens. Reference launch price: 0.01 USDC per token, so selling the whole supply at that price raises 10,000 USDC.
  • Demand level = total human budget ÷ (supply × launch price). 60 runs, evenly spaced from 0.5x to 4x. Each run draws a fresh crowd from its own seed, derived from base seed 20261114.
  • 200 humans per run. Each has a private valuation, the most they would pay per token: lognormal, median 1.6x the launch price, sigma 0.55, clamped to 0.3x–12x. Valuations are never shown.
  • Human budgets are lognormal weights (sigma 0.9, so a few whales) scaled to the demand level, at least 1 USDC each. Humans arrive between second 1 and second 1,800, more of them early.
  • 5 sniper bots per run, each with a budget of 2%–6% of the supply value (200–600 USDC). Bots act at second 0, before any human. On the bonding curve and in the fixed-price sale they buy with their whole budget. In Sealround they bid their whole budget with a max price of 100x the launch price.
  • Bonding curve: constant product x·y = k with virtual reserves in pump.fun proportions (virtual token reserve = 1.3529 × the curve supply). The virtual USDC reserve is set so buying the whole curve raises 10,000 USDC, the same as the fixed-price sale. The price runs from 0.002608 to 0.038335 USDC (0.26x to 3.83x the launch price).
  • On the curve, buyers act in arrival order. A human buys until their budget runs out or the price reaches their valuation. The curve is a two-way market from second 0, so after each human buy, bots sell back into it with the same rule as the post-launch pool (below). The launch ends when the curve sells out or the last human has arrived.
  • Fixed-price sale: 0.01 USDC per token, first come first served until supply runs out. A human buys only if their valuation is at least the price.
  • Sealround: every human whose valuation is at or above the floor (the launch price) bids max price = valuation and max spend = deposit = whole budget. Humans below the floor do not bid. Clearing uses clear() from @fairground/clearing, the same rule the enclave runs. Unsold tokens are burned.
  • Humans are honest and simple: they bid their true valuation in Sealround and stop at it on the curve. Nobody splits across wallets.
  • Post-launch market, identical for all three: a constant-product pool opens at the launch's final price (curve: its last price; fixed price: 0.01; Sealround: the clearing price) with 2,000 USDC of liquidity (20% of the supply value) paired with tokens at that price.
  • Humans with budget left and a valuation above the pool price buy from the pool in arrival order, each until their budget runs out or the price reaches their valuation.
  • Bots sell into that demand: after each human buy, bots sell back until the price returns to where it was before that buy. A bot never sells below what it paid per token. Tokens bots cannot sell stay in their wallets.
  • Bot profit counts only tokens actually sold, at the average price the bot paid. Unsold tokens count as zero, not at a market value. Bots follow this one simple selling rule everywhere; bots that time their sales better would likely make more on the curve and in the fixed-price sale, so those profits are conservative.
  • No fees, gas, latency or MEV beyond bots acting first. Money is integer throughout (USDC 6 decimals, tokens 18 decimals); floats appear only in the reported metrics.
  • Deterministic: the same seed and config give byte-identical output. No LLM calls, no network.

Watch it on a live demo sale. Judge mode runs a sniper and a copycat against the mock contract: the sniper pays the clearing price like every winner, and the copied bid is voided.

Open judge mode