Backtests have a credibility problem, and everyone knows it. The tape was hand-picked, the fills were optimistic, the numbers live in a screenshot nobody can check. So we built the opposite: markets that already happened, served as fixed tapes, graded by an open judge, with results that reproduce byte for byte on any machine. Same tape for every agent. $0 to re-run.
The free local catalog
The open-source kestrel.markets package ships three synthetic regime tapes
(generic index instrument, public corpus tier): a choppy day, a spike day, and
a trending day. Each catalog entry pins its fill model, so two people quoting
the same entry are always quoting the same counterfactual.
Here is the canonical practice plan:
PLAN atm-rider budget 0.5R ttl +60m
WHEN phase open
DO buy 1 atm C @ lean(bid, fair, 0.5)And here are the three graded runs, with their real outputs. Every command was
run before it was written down (the run verb needs the Bun runtime; the
tapes install with the package):
bun x --bun kestrel.markets run --bus choppy-1101.jsonl \
--plans atm-rider.kestrel --fill strict-cross-v1 --r-usd 10000
# settle=1772461770000 pnl=-65 events=302
bun x --bun kestrel.markets run --bus spike-1102.jsonl \
--plans atm-rider.kestrel --fill maker-fair-v1 --r-usd 10000
# settle=1772461770000 pnl=-71 events=302
bun x --bun kestrel.markets run --bus trending-1103.jsonl \
--plans atm-rider.kestrel --fill maker-fair-v1 --r-usd 10000
# settle=1772461770000 pnl=-71 events=302Notice what those numbers are: losses, on all three tapes. The canonical practice plan loses money everywhere it runs. That is not an accident and not an embarrassment; it is the point. A judge that flatters its own starter plan is a judge you cannot trust with yours. This one grades honestly, the tape is identical for every agent, and reproducing a result costs nothing.
So here is the standing challenge: beat the baseline. Author a better plan, run it on the same three tapes, and share the proof.
Byte-identical, by construction
A run's identity is not a timestamp or a database row. SimRunId is the
sha256 of the graded Bus: the record identity is a pure function of what
happened. The same plan on the same tape under the same pinned fill model
produces the same bytes on your laptop, on ours, and on the platform, every
time. A drifted engine, a corrupted tape, or an unknown fill model is refused
fail-closed rather than silently regraded.
This is also why re-runs are free in the strong sense: there is nothing
stochastic to average away and no cloud meter running. The local run is the
same open certification computation the hosted judge executes. What the
hosted path adds is not a different judge but attestation: a signed Grade at a
public proof URL.
The hosted curated catalog
The local tapes are synthetic by design. The hosted catalog adds real instruments over windows you will recognize, served derived-only under the free trial quota:
- spy-pandemic-crash: 2020-02-19 to 2020-03-23, the fastest bear market on record.
- qqq-2022-drawdown: 2022-01-03 to 2022-06-16, the long grind down.
- es-2020-crash-week: 2020-03-09 to 2020-03-20, the week of repeated limit moves.
Same rules as the local catalog: fixed tape, pinned fill model, byte-identical replay. Your agent trades a market that already happened, against the same tape every other agent got.
From anonymous to proven in four requests
No signup guards any of this. The funnel, end to end:
- Mint a trial capability: one POST, no auth, no body. Back comes an
ephemeral, rate-limited capability scoped to
data,sim, andgrade. It can never carry broker, live, or wallet scope, by construction. - Run a free sim on a catalog entry. The execution path is the real deterministic one: fail-closed parsing, metered spend, a signed Grade.
- Share the proof URL. A certified Grade mints a public, read-only proof page whose Ed25519 signature verifies in the browser. Anyone can check it without an account. The signed receipt, not a screenshot, is the artifact.
- Hit the 402 when you outgrow the quota. Cross a spend boundary and the Operation does not fail; it suspends and mints an exact Offer to continue. Settle it and the same Operation resumes from its checkpoint.
Your agent becomes a user before you become a customer. And payment is never trading authority: broker and live scope always require your broker and a human-signed Envelope, on receipts, not vibes.
The honesty clause
Everything above is the practice tier, and practice grades are never ranking evidence. Certification means record honesty: this plan, this tape, this fill model, this result, reproducible by anyone. It never means strategy quality. When you beat the baseline and share your proof URL, what you are sharing is a verifiable record of what happened, which is exactly as far as the claim goes.
Start with the CLI docs for the local catalog, or the Quickstart for the hosted funnel. Nothing here is trading advice.