Open for entriesprediction-market bots

Build a paper bot that creates trading volume.

Start with $10 of simulated cash. To qualify, complete $1,000 of BUY-plus-SELL volume in 24 hours and be flat at that first clean crossing. We run the same paper test for every entry.
Prize
$500 first prize
Closes
Rolling qualification
Scored on
Cash at qualifying crossing
Benchmark
24-hour paper run
  1. 1DownloadGet the runnable Python kit.
  2. 2RunStart the bot with one command.
  3. 3TestPass the included smoke test.
  4. 4SubmitSend the exact frozen build.

Download the brief, run a sample, then follow the submission steps below.Download starter brief ↓

Provisional · 21 October 2026

Combined results from two paper segments

The same 11 frozen builds ran in two separate 12-hour segments, with a 3-hour-50-minute gap. Of 288 scheduled markets, 282 passed data checks. This is not a continuous 24-hour result or an official qualification decision.

View all 11 results ↓

You submit code only. You do not deposit money, open a trading account, or place a real trade. Entry is free and online. YeNo may consider selected bots for a separate pilot under written terms; that review is optional and does not affect scoring. Visit YeNo ↗ Submit your bot →

Diagnostic only · not the official standings

Combined results from two paper segments

This combines the same 11 sourceable builds frozen on 16 October across two separate 12-hour segments. The first had 143 of 144 usable markets; the second had 139 of 144. A 3-hour-50-minute gap separated them, so this is not one continuous 24-hour result. No bot reached $1,000 in completed-cycle volume in these segments. This diagnostic does not qualify or disqualify anyone officially. Later submissions and revised builds are not included; a twelfth entry could not be scored because its exact source was unavailable.

Swipe sideways to see cash, fees, completed cycles, and stop status.

Combined provisional results, sorted by completed-cycle volume; not an official ranking
BuilderCombined completed-cycle volumeCash at stop*FeesCompleted cyclesStop status
Hardik Gautam$506.75$3.04$10.7459Flat at stop
Devansh Goenka$459.38$1.15$13.0059Flat at stop
Vidyansh Singh$448.19$3.63$8.3946Flat at stop
Jatin Kumar$208.23$0.01$9.0833Open position at stop
Jianhao Cheng$172.54$0.01$7.5126Flat at stop
Jaswanth L$164.36$1.12$7.4450Open position at stop
Anmol$111.16$0.70$3.2915Flat at stop
Avinash Gehi$81.27$0.79$2.8510Flat at stop
Hardik Hinduja$29.24$9.23$0.493Replay failed
Omar Baró / Unfire$0.00$10.00$0.000Flat at stop
Sahil Deshmukh$0.00$0.00$0.420Open position at stop

*Cash from the first segment carried into the second and is shown once. These are simulated cash amounts, not profit. Open-position cash excludes the position value; the replay-failure row shows last recorded cash, not a final balance. Amounts are rounded to cents. Volume counts only completed buy-and-sell cycles. Rows are sorted by volume for readability, not ranked.

Separate diagnostic · not official standings

Two newer submissions · 288 validated markets

Both builds were run against a common set of 288 validated five-minute market inputs, using the same frozen paper rules and $10 starting cash. The markets came from separate captures on 21–23 October, with a 7-hour-40-minute gap; two markets failed validation and were excluded. Sanchit stopped before any market was scored; Hrisit stopped after 212 markets because of repeated decision errors. These partial results do not qualify or disqualify anyone or change the official standings.

Swipe sideways to see cash, fees, coverage, and status.

Separate nonofficial diagnostic for two newer submissions
BuilderCompleted-cycle volumeCash at stopFeesCompleted cyclesMarkets evaluatedStatus
Hrisit Roy$254.77$4.81$3.4526212 / 288Stopped after repeated decision errors; incomplete
Sanchit Gupta$0.00$10.00$0.0000 / 288Stopped before first scored market after repeated decision errors; incomplete

Amounts are simulated. Cash at stop is not a profit measure. Volume counts completed buy-and-sell cycles only. Both bots ended flat, but each replay stopped before all 288 markets were evaluated; these are partial, nonofficial results.

Interim rerun · 23 October 2026 · not official standings

Two newer builds · 88 valid markets

We replayed the same two frozen builds on the first 88 markets that passed data checks in the 23 October capture. They cover 7h20 of market time within a 7h25 span; one scheduled five-minute window (01:20–01:25 UTC) was excluded because its BTC reference data was stale. Both builds returned valid decisions on all 88 selected markets and finished flat. The replay stopped when its captured paper data ran out, so this is not a 24-hour result or an official qualification decision.

The selected input sets share 73 market IDs, but the earlier 288-market report did not evaluate those markets for either build: Sanchit stopped before evaluating any market, and Hrisit evaluated 212 markets from the earlier capture segment. This 88-market replay is the first scored evaluation of the shared IDs. Keep the diagnostics separate; do not combine their volumes or treat either as proof of profitability.

Swipe sideways to see the interim paper results.

Separate nonofficial interim rerun for two newer submissions using 88 valid markets
BuilderCompleted-cycle volumeCash after replayChange from $10FeesMax drawdownCyclesCoverage / status
Sanchit Gupta$443.47$2.21-$7.79$15.27$9.346888/88 · 0 invalid · flat · INCONCLUSIVE · paper data ended
Hrisit Roy$395.89$6.08-$3.92$5.14$5.494088/88 · 0 invalid · flat · INCONCLUSIVE · paper data ended

Each rerun starts with $10 of simulated cash. Cash change is not a forecast or proof of strategy edge. The 88-market result is inconclusive for the official 24-hour test; it does not rank, qualify, or disqualify either build. Rows follow frozen submission order, not performance rank. The separate 24-hour capture was still running at 08:09:36 UTC on 23 October.

Your first five minutes

1. Download the kitpython3 yeno_competition_starter_bot.pypython3 yeno-smoke-test.py

You should see contractSmokePassed: true. That confirms your local bot works; it is not a score.

How it works

Start with working code. Make it better.

Download our bot, test your strategy, and send us a frozen build. We handle the market data, simulated trades, and scoring.

01Start free

Download a working bot

Start with our house bot and exact test contract. You can run everything locally without a YeNo account or trading capital.

02Build

Make the loop smarter

Improve when it buys, when it exits, and how much it risks. Use the included local smoke test to confirm your endpoint, then submit the frozen build you want evaluated.

03Submit

Send code, not money

Submit one frozen commit or container. Builderr runs it for 24 hours on unseen YeNo BTC market data and handles the cash, fills, fees, and scoring.

04Win

Cross $1,000 while flat

Bots qualify when a completed cycle first takes them to $1,000 of volume and they are then flat with no pending action. The highest-ranked qualifying bot wins the YeNo-sponsored $500 prize.

Qualification

One exact contract.

The public rule, download, and machine evaluator use the same numbers.

Scoring

Complete cycles create volume. Nothing else does.

The bot cannot inflate its score with retries, order count, or unfinished inventory.

Eligible volume

executed BUY notional + executed SELL notional
$5.00gross BUY
$4.91gross SELL
$9.91credited after full exit

Rejected orders, cancellations, zero fills, settlements, redemptions, pending inventory, and incomplete exits add zero. Partial fills are combined into the same cycle.

RANK 1

Cash at qualifying crossing

Among bots that are flat at their first clean $1,000 crossing, the highest simulated cash wins.

RANK 2

Maximum drawdown

If cash ties exactly, the bot with lower peak-to-trough drawdown ranks higher.

RANK 3

Time to target

If both still tie, the bot reaching $1,000 sooner ranks higher.

Starter kit

Start building in three steps.

You need Python 3. No YeNo account, API key, wallet, or deposit.

STEP 2

Run

Start the bot locally. It listens for the same request shape used in the official paper run.

Open the 3-step guide ↓
STEP 3

Test

Send the included sample market-data request to your local API and confirm its answer is valid.

Get the local API test ↓

The local test checks only your POST /decide interface. It is not a score. In the official run, Builderr sends unseen paper market data to that same endpoint—so there is no separate YeNo test account or API key to request.

Then change the strategy. Do not change evaluator-owned cash, fills, fees, volume, or position accounting.

These are internal development replay results, not official scores. The replay paths are not included in the starter kit. None of the starter bots has qualified yet.

$559 median · $943 best

House Bot v1

Trades five-share BTC-reference moves near expiry, checks immediate exit depth, caps entry loss, and allows two cycles per market. This is the included code baseline.

$169 median · $762 best

Precision variant

Reference configuration only; its implementation is not included. It requires the order book to agree with the public BTC signal and trades less often.

$168 median · $818 best

Aggressive reference variant

Reference configuration only; its implementation is not included. It removes the immediate-loss cap and was less reliable in development runs.

Development benchmark · Sep 22, 2026

The house bot got close. It did not qualify.

These results come from resampled recorded regimes used during development. They guide builders; they are not a forward qualification result.

$559median volume, all 30 paths
18/30paths finishing flat
$680median among flat paths
$943best flat path

No validation path crossed $1,000. Six of 30 reached at least $750. Under a two-cent adverse execution stress, the best run fell to $385 and the median to $70. The largest opportunities are better regime selection, execution timing, dynamic sizing, and guaranteed deadline flattening.

Benchmark meaning: $943 is the best observed development run—not an expected result, promise, or official score.

Build against this

One local endpoint. No account, deposit, or trading.

You submit only the algorithm. It never receives a key or controls a real ledger; it only returns HOLD, BUY, or SELL to the paper evaluator.

POST /decideJSON in · JSON out
// evaluator → your bot
{
  "market": { "id": "opaque", "secondsToClose": 84 },
  "account": { "cashUsd": 10, "eligibleVolumeUsd": 0, "position": null },
  "rules": {
    "maximumBuyCashUsd": 5,
    "targetVolumeUsd": 1000,
    "evaluationWindowHours": 24
  },
  "reference": {
    "btcMidUsd": 80482.155,
    "openingTargetUsd": 80444.946,
    "observedAt": 1789880823.619,
    "targetObservedAt": 1789880814.203,
    "targetProvisional": false
  },
  "books": {
    "YES": { "bids": [[0.49, 100]], "asks": [[0.50, 100]] },
    "NO":  { "bids": [[0.49, 100]], "asks": [[0.50, 100]] }
  }
}

// your bot → evaluator
{ "action": "BUY", "outcome": "YES", "maxCashUsd": 4.80 }
HOLD

Skip a weak, thin, stale, or late setup.

BUY

Choose YES or NO and a fee-inclusive cash ceiling.

SELL

Request a full exit; partial fills remain one cycle.

Submit a repository or HTTPS endpoint plus an immutable commit or container digest. Official runs block arbitrary outbound network access and record the exact input-data hash.

Reality model

A midpoint backtest will not pass.

The paper evaluator models the expensive and awkward parts of real execution so results are useful to YeNo.

01

Pay both fee layers

The evaluator applies the 1% YeNo overlay observed in our test account and the dynamic crypto taker fee, 0.07 × shares × price × (1 − price), on entry and exit.

02

Trade the later book

Every action waits 250 ms, then crosses a later L2 update for its own outcome. An opposite-side update cannot reuse a pre-decision quote.

03

Expect partial fills

Displayed depth, minimum order size, split exits, share dust, and executable one-sided books near expiry are modeled. A partial exit remains the same cycle.

04

Treat writes as ambiguous

A timeout is not permission to retry. Reconcile the venue first or risk opening a duplicate position.

05

Respect the clock

Books older than two seconds are rejected. New entries are blocked inside the final 15 seconds. Qualification requires a flat account at the first clean $1,000 crossing.

06

Use causal reference data

Each request can include the public BTC midpoint, YeNo opening target, receive timestamps, and a provisional flag. Future-stamped target rows are excluded.

Protocol fee source: Polymarket's current fee documentation. It specifies the crypto rate, price curve, taker-only application, and five-decimal fee precision. The additional 1% overlay is modeled from observed YeNo test-account execution.

Market scope

BTC five-minute Up/Down only.

A narrow universe keeps market data, fills, and qualification comparable.

Hidden forward paper data

Qualification uses one unseen, receive-time-ordered 24-hour YeNo window. Internal recorded replay informed development but is not bundled with the starter kit or used for the official score.

Code only—no real trading

Entrants submit an algorithm for paper evaluation. You do not fund an account, receive trading credentials, or place real orders.

Submit

Start with the starter. Submit a frozen build.

The house bot is a development baseline, not a qualifying result. Run your improved version locally, then send the exact commit or container you want us to test.