Ask a chat model to read a BTC chart and it will give you a confident answer. The problem is that it never really saw the chart. Language models take prices in as text tokens. They're bad at spotting numeric patterns across hundreds of bars, and they'll happily describe a pattern that isn't there.
That matters more once the model is an agent, something that acts on what it reads. An agent that invents a "bull flag" and then calls a trading API is worse than one that just says "I don't know".
A model that only speaks candles
Kronos is different. It's an open-source (MIT) foundation model built only for candlesticks: open, high, low, close and volume. Its authors pretrained it on over 12 billion candles from 45 global exchanges (paper, code). It turns each candle into tokens, the way a language model turns words into tokens, and it learns to predict the next ones.
Two things make it useful for agents:
- It outputs numbers, not prose. You get forecast candles you can compare with what actually happens.
- It's generative. Run it many times with sampling and you get a spread of possible futures instead of one line. The spread is the model's own view of its uncertainty, which still has to be checked against outcomes: raw, it turned out too narrow.
QuantX402 isn't affiliated with the Kronos authors. We run their open model and build the layer on top of it.
From 30 paths to a handful of facts
Every hour, after a candle closes, QuantX402 feeds the last 360 closed 1h candles into Kronos-small and samples 30 future paths, 24 hours ahead. A cloud of 30 lines is useful to a quant and useless to an agent, so we turn each run into a fact list:
- Direction (
direction) with a confidence label. The raw share of paths that end higher (prob_up) is a sample count, not a probability - Expected move (
expected_move_pct): being shrunk to zero, because the raw median move wasn't reliable - Range (
band_80_pct,expected_range): a volatility-based range, not a calibrated interval - Invalidation (
invalidation_level): the price that says the model was wrong - Strike view (
p_close_above): the raw share of paths ending above nearby round numbers. It is not odds, so don't trade it against prediction-market contracts - Confidence and caveats (
confidence,band_calibrated,calibration_note) - Provenance: model, number of paths, sampling settings, and the exact candle it ran on
The same facts drive the plain-English breakdown panel on quantx402.app. Agents get the JSON in the "For agents" tab and from the API.
One real example, with the miss included
Update, Oct 12 2026 (model status): we have since backtested the raw Kronos-small output over many past windows. It is not calibrated: the raw model showed no reliable directional edge, its raw 80% band was much too narrow, and its raw share of paths finishing higher overstated confidence. QuantX402 now treats the output as an experimental model signal: the range is re-centred and widened to match historical volatility, no move estimate is published, and raw path shares are being replaced by a direction plus a confidence bucket. Every forecast is scored in the free, public track record. The single example below is kept for illustration only.
On BTC hourly candles from Oct 10 16:00 to Oct 11 16:00 UTC, Kronos-small forecast a median move of +1.80%. 93% of its 30 paths ended higher, and the 80% band ran from +0.73% to +2.30%. BTC actually moved about +1.06%, inside the band.
The smaller Kronos-mini, on exactly the same data, leaned down (median −0.48%, 17% of paths up) and was wrong.
That's one example, not a benchmark. The disagreement is the point: forecasts are sensitive to model size, lookback and sampling settings, and they're often close to a coin flip. So the API labels the range as uncalibrated, the confidence rule is published, and every forecast gets scored automatically once its window closes. The track record is public, misses included.
Where it's live today
- Live now: BTC-USD and ETH-USD, 1h candles from Coinbase Exchange public data (closed bars only).
- Coming soon: stocks, ETFs and forex. Kronos was pretrained across many kinds of markets, but each new market needs its own data source, trading calendar and testing before we serve it. We'll announce each one when it's actually forecast, not before.
Try it
- Look at the live window: quantx402.app
- Agents: start with the free, delayed
/api/v1/sample?symbol=BTC-USD&tf=1hand read/openapi.jsonor/llms.txt. The live forecast is/api/v1/forecastat $0.02 per call via x402 (live in USDC on Base and Solana mainnet). - To run Kronos yourself, get the free skill and read the free guide.
Everything here is experimental model output for research and education. It's informational, not financial advice, and nothing on the site tells you to buy or sell anything. Past results don't predict future results.