Watch shad0w read
Polymarket's money, live.
Every trade on Polymarket is a sentence ("Will Galatasaray win on Oct 13?") plus dollars. To know where the money is going, someone has to read every sentence and file it under a topic. Thousands of them, every few minutes.
shad0w does that reading. It files each sentence in a few millionths of a second, inside this browser tab: no server, no GPU, no per-call bill. Press start and watch a minute of real trades get sorted as they happen.
- 1A trade happenssomewhere in the world, someone buys "Yes" for $40
- 2shad0w reads its sentenceand picks a section and a topic, in microseconds
- 3You see where money flowsa live map, a tape, the biggest markets, every label checkable
Trades labelled so far. One call a second is generous: the hosted LLM calls we measured took 1.1–2.4 s each.
Press start and the map fills in as trades arrive.
Polymarket tags every event itself. While you watch, this page fetches those tags for each market and compares.
- markets checked
- –
- section agrees
- –
- topic agrees
- –
- certified labels: section agrees
- –
- share of dollars correctly filed
- –
Where it disagreed (0) · click to check each one yourself
The minute in one paragraph
Type any market question.
This is the same table the live run uses, already loaded in your tab. Type anything and it answers as you type, with how sure it is.
Three things you can hold in your hand.
Not a sample, not a nightly batch. Each trade is filed before the next one lands, and the whole backlog of 20,000 takes well under a second.
Each answer says whether it is certified: confident enough that, tested in advance, such answers disagree with the truth at most 2% of the time (sections) or 5% (topics). The rest are marked, so you know what to double-check. And this page checks it live, against Polymarket's own tags, with every mismatch listed for you to click.
The table is a file of a couple of megabytes. It runs in a browser tab, on a laptop, on a phone, or next to your database. Labelling a million items costs electricity.
Reading every trade, live, used to need a server and a bill.
Polymarket's live feed runs at about 35–45 trades a second. Here is what it takes to label all of them as they come, four ways.
| time per label | to keep up with the live feed | the 20,000-trade backlog | where it runs | |
|---|---|---|---|---|
| a person | ~5 s | ~200 people, nonstop | ~28 hours | an office |
| a hosted LLM | 1.1–2.4 s (measured) | ~40–100 calls in flight, all day, each one billed | ~6–13 hours, one call at a time | someone's GPU cluster, over the network |
| a small decision model on a laptop CPU | 0.3–15 s (measured) | can't, on a CPU (on a GPU: 3–12 ms, published) | hours | a GPU server |
| shad0w | ~7 µs | about 0.03% of one CPU core | under a second | this browser tab |
LLM and decision-model times are our measurements on a laptop with a hosted API and llama.cpp (see the Doom race); the GPU figure is llama.cpp's published one. The person is a rough guess. shad0w's time is measured in Node and again in your tab during a run. The trade-off: an LLM can label anything you ask; shad0w knows only what it was taught, and says when it isn't sure.
No LLM in the loop. Polymarket's own tags taught it.
Polymarket tags every event it lists ("Soccer", "Fed Rates", "Ukraine Map"…). We mapped those tags to 9 sections and … topics, and shad0w compiled … market questions into a … table. Then two tests: the trades of a few recorded minutes of the live feed (what this page shows you; long-running markets in it may also be in the training data), and every market in the events created in the last two weeks before the data was collected (… questions, including thousands of near-identical sports props).
"Certified" means the answer is confident enough to pass a test set in advance: a certified section may differ from the tags on at most 2% of answers, a certified topic on at most 5% (90% confidence). The test was run on 4,000 older markets the table never trained on. Everything else is still answered and shown, marked "not certified": in a real system those go to a person or an LLM. Sections are broad; topics are finer and overlap (a Fed market tagged "Trump"), so fewer of them are certified.
Any stream of short text, labelled as it arrives.
Prediction markets are one feed. The same kind of table works on support tickets, news, chat, reviews, transactions or logs. If you already have labels (tags, queues, CRM fields), shad0w compiles them directly, as here. If you don't, it learns them from your LLM's answers and takes over the cases it is certified on.
File every incoming market, headline or filing by beat, and get alerted when money moves on a topic you follow.
See sports vs elections vs crypto exposure minute by minute, with every label auditable.
Enrich a firehose with labels before it reaches your warehouse. The labelling costs less than the network.
Route tickets and alerts the moment they arrive; send only the uncertain ones to a person or an LLM.
pip install shad0wllm
# one line per labelled example: {"text": "...", "section": "...", "topic": "..."}
shad0w train --log labelled.jsonl --out bundle/
python -c "import shad0w; print(shad0w.load('bundle/').decide('Will the Fed cut rates in December?', probabilities=False))"
In a browser: npm i shad0wllm, then (await Bundle.load(url)).decide(text), exactly what this page does. Docs →
What this is, and isn't.
- Real trades. Everything comes from Polymarket's public API when you press start: the latest 20,000 trades (the most it serves, roughly the last 15–30 minutes) and the live feed after that.
- Dollars are shares × price for each trade, as Polymarket reports them.
- No trader is shown. The public feed includes wallets and profile names; this page never displays or stores them, and the download leaves them out.
- The check uses each market's event tags from Polymarket, mapped with the same rules used to build the table. Tags are Polymarket's editorial choice, and a few events carry mixed tags.
- Timing is measured in your tab: trades are labelled in blocks and the total divided, because browser clocks are too coarse to time one label.
- Context only, not advice. shad0w is not affiliated with Polymarket.